美文网首页程序员
远程服务器设置SSH Key免密登录

远程服务器设置SSH Key免密登录

作者: 雨带愁 | 来源:发表于2020-06-22 13:21 被阅读0次

    为了远程服务器的安全使用及远程连接方便,设置SSH Key免密码登录。
    (分为用户操作和管理员/sudoer操作)

    用户操作步骤

    1. 在服务器上生成密钥

    用ssh远程连接到服务器后,执行命令:

    ssh-keygen
    

    终端会出现提示:

    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/username/.ssh/id_rsa):
    # 可选择默认位置,例:/home/username/.ssh/id_rsa
    Created directory '/home/username/.ssh'.
    Enter passphrase (empty for no passphrase):
    # 为私钥加密,设不设都行吧
    Enter same passphrase again:
    Your identification has been saved in /home/username/.ssh/id_rsa.
    Your public key has been saved in /home/username/.ssh/id_rsa.pub. #生成公钥文件位置
    The key fingerprint is:
    7c:25:bd:54:f5:fc:60:c0:86:c1:a0:32:7d:8a:80:c4 root@debian
    The key's randomart image is:
    +--[ RSA 2048]----+
    | .o.+..o..|
    | o . . o o+ o.|
    .......

    2. 在远程服务器上配置公钥

    cd .ssh
    mv id_rsa.pub authorized_keys
    chmod 600 authorized_keys #修改公钥为只有属主有读写权限(安全考虑)
    chmod 700 ~/.ssh #修改.SSH目录为只有属主有读、写、执行权限(安全考虑)
    

    3. 在本地配置私钥

    3.1 从服务器上取回私钥到本地电脑
    cat /home/username/.ssh/id_rsa #刚刚存储的密钥
    
    • 复制显示的所有内容
    • 在本地新建一个文本文件,可随便取名,不要后缀,将内容复制进去保存,这个文件即为私钥,一般放在~/.ssh路径下,注意备份。
    3.2 在本地电脑为私钥文件设置权限
    chmod 0600 id_rsa
    

    4. 用SSH Key登录

    ssh username@ip -p xxx -i ~/.ssh/xxx
    

    其中,-p后的xxx为端口,不填即为默认的22,-i后的~/.ssh/xxx为本地私钥的路径。

    PS:对于x2go用户,注意在Session preference中修改下面两个位置


    x2go preference修改

    管理员/sudoer操作

    1. 开启SSH Key登录

    ssh到服务器,执行:

    vim /etc/ssh/sshd_config
    

    找到下面两个参数并确认为yes

    RSAAuthentication yes
    PubkeyAuthentication yes

    2. 重启ssh生效
    /etc/init.d/ssh restart
    
    3. 关闭SSH密码登录

    用户都完成了key生成操作后,将sshd_config中的这个参数注释取消并改为no:

    “#”PasswordAuthentication yes

    THX~

    相关文章

      网友评论

        本文标题:远程服务器设置SSH Key免密登录

        本文链接:https://www.haomeiwen.com/subject/iesxfktx.html