Computer Knowledge我用 Linux技术文

SSH 免密码登录与本地多 Key 管理

2015-05-27  本文已影响1288人  奔跑的紫薯

本地多个 SSH KEY 的管理

日常办公中常遇见本地需要生成多个 ssh key 的情况,使用 ssh-keygen 生成的会覆盖原有的,导致以前的秘钥无法使用。在本地 ~/.ssh/ 文件夹下建立 config 文件可对不同的远程服务器连接进行管理,比如有两个 github 账户,或者两个 git 服务器等等。

Host vps(这里是自定义的host简称,以后连接远程服务器就可以用命令ssh vps)
  User 这里填用户名(如:root)
  HostName 这里填服务器地址也可以是域名(如:server.xxoo.com)
  Port 这里填服务器 open-ssh 端口(默认:22)
  IdentityFile 这里是刚刚生成的私钥文件地址(如 ~/.ssh/id_rsa)

免密码登录

  1. 本地生成秘钥 ssh-keygen -t rsa -C "your@email.com",其中 pub 为公钥
    会提示生成的秘钥文件名,可以写上自己的秘钥文件,然后通过上面的管理办法进行管理
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):~/.ssh/id_rsa_test
    然后不用输入 passphrase,会生成:
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in id_rsa_test.
    Your public key has been saved in id_rsa_test.pub.
    The key fingerprint is:
    f6:90:bb:03:13:3c:08:41:22:a2:73:71:a1:61:c5:a7 your@email.com
    The key's randomart image is:
    +--[ RSA 2048]----+
    |+.*++. |
    |+o.=. . |
    |o o. = |
    | o E + . |
    | oS |
    | o. + |
    | o. . |
    | .. |
    | .. |
    +-----------------+
    再根据上述管理方法配置 config 文件
  2. server 端变更配置 sshd_config
    $ sudo vim /etc/ssh/sshd_config
    PermitRootLogin no # 禁止 root 登录
    RSAAuthentication yes #RSA认证
    PubkeyAuthentication yes #开启公钥验证
    AuthorizedKeysFile %h/.ssh/authorized_keys #验证文件路径
    PasswordAuthentication no #禁止密码认证
    PermitEmptyPasswords no #禁止空密码
  3. 在 server 端用户目录下创建文件夹 ~/.ssh/ 并变更权限为 700,创建文件 ~/.ssh/.authorized_keys 并变更权限为 644
  4. 把本地的公钥内容 id_rsa_test.pub 的内容复制粘贴到 server 端的 ~/.ssh/authorized_keys 文件中
  5. 重启 server 端 SSH 服务
    $ sudo service ssh restart
    # 或者
    $ sudo /etc/init.d/ssh restart

总结

禁用 root 登录可以有效提高系统的安全性,当然还有其他的一些方法:

上一篇下一篇

猜你喜欢

热点阅读