SSH 相关的配置操作

SSH 免密码登录

这里即A机想通过ssh免密码登录到B机。ssh 无密码登录需要使用到公钥和私钥。一般是在A机上生成公钥/私钥对,然后将公钥添加到B机中。

  • A机:自己的电脑
  • B机:需要远程登录的客户端或服务器
  1. 首先需要在A机下生成公钥/私钥对

    ssh-keygen -t rsa -f id_rsa -P ''
    

    参数:-f 生成的文件名 -P 表示密码,-P ” 表示空密码,会在 .ssh 目录下生成 id_rsa 和 id_rsa.pub。

    :因为在我的 .ssh 目录下还有其他公钥/私钥对,例如用来连接github的公钥/私钥对,如果你也有其他公钥/私钥对,为了不发生混淆,建议进行了重新命名。如果重命名了,则不会生成在 .ssh 目录中,就需要手动把 id_rsaxxx 私钥文件(不带.pub后缀)移动到当前用户的 .ssh 目录下

  2. 将产生的公钥(xxxxx.pub)复制到 B机的用户目录下,可以采用各种方式,以下用 scp 举例:

    scp xxxxx.pub username@IP:/home/username/xxxxx.pub
    
  3. 将公钥追加到 authorzied_keys 中,可以通过A机使用密码登录B机(或直接在B机上操作),之后需要重启B机的sshd服务;

    远程登录命令:

    ssh username@IP
    

    追加公钥到authorzied_keys中:

    cat xxxxx.pub >> .ssh/authorized_keys
    

    通过以下命令重启:

    service sshd restart
    

    :authorzied_keys 的权限要是 600 。
    :如果是服务器,最好把密码登录关闭。

  4. 并在A机上测试

    如果是默认的文件名,则可以去掉 -i 参数(用于指定私钥文件位置)

    ssh -i "私钥文件路径" user@hostname
    

SSH 利用config管理会话

SSH 利用config管理会话(无需通过命令指定私钥、端口等参数登录)。当有多个私钥时,管理和操作会变复杂。使用 ssh 时需要通过 -i 指定私钥文件,比较麻烦。可以通过在 .ssh 目录下新建一个 config 文件来进行管理。

  1. 新增ssh的配置文件config,并修改权限,

    touch ~/.ssh/config
    chmod 600 ~/.ssh/config
    
  2. 配置内容如下:

    Host 别名
        Hostname 主机名
        Port 端口
        User 用户名
    

    例如:

    Host github.com  
        IdentityFile ~/.ssh/id_rsa_for_github  
        User git  
    

SSH 会话保活

当你使用ssh命令连接公司服务器时,很有可能会出现闲置一段时间后,被服务器自行断开的情况,这可能是运维部门的安全策略。但这种被动断开很可能会影响到自己的工作上下文。

  1. 在配置文件 config 中,意思为每30秒发送一个no-op包,通过心跳保活。

    Host *
        ServerAliveInterval 30
    
    原文作者:ultraji
    原文地址: https://www.jianshu.com/p/35638c815620
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞