Linux设置密钥登录

有时候我们希望不用每次登录linux服务器都要输入密码,那么这个时候可以选择ssh密钥登录,就是rsa公钥放到服务器上,私钥放在客户端上,每次登录的时候,用密钥登录;这样更方便也更安全

  • 先生成一个rsa密钥对
[root@VM_57_158_centos ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
7e:7a:29:07:e5:4f:05:b5:8f:98:66:b3:1b:77:71:1b root@VM_57_158_centos
The key's randomart image is:
+--[ RSA 2048]----+
|             ..  |
|            .  . |
|             ..  |
|          .  o.o |
|        So  *..Eo|
|       .. .o.o  =|
|        ...+o ...|
|        .o+ .+ . |
|        .+  .    |
+-----------------+

默认生成的密钥文件在root/.ssh目录下

  • 检查下.ssh目录下authorized_keys文件是否存在,没有的话,创建一个,然后将id_rsa.pub的内容追加到authorized_keys文件尾
cd .ssh
touch authorized_keys
cat id_rsa.pub >> authorized_keys   -- 将id_rsa.pub的内容追加到authorized_keys

修改.ssh的权限为700, authorized_keys的权限为600或者更严格的400,否则登录的时候会提示server refuse you key,

cd ..
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

如果你要设置的用户不是root,比如是git之类的
那么你要设置的.ssh目录应该是 /home/git/.ssh, 并且要将.ssh目录和authorized_keys文件的文件所有者改为git

chown -R git:git .ssh

否则还是登陆不了

  • 修改下ssh的配置
    vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile      .ssh/authorized_keys

这里有一点很重要,在你配置密钥登录成功之前,千万不要太自信将
PasswordAuthentication 设置no,否则你密钥登录不了,然后又禁止密码登录,就悲剧了
在密钥登录设置成功之后,可以将PasswordAuthentication 设置为no,禁用密码登录了,比较安全

  • 将私钥文件id_rsa拷贝到你的客户端
    如果你是要在windows上使用putty客户端登陆linux服务器
    那么你还需要将这个私钥稍微转换下
    打开putty key generator 工具
    File -> Load private key, 然后点save private key, 就转换完毕,window下私钥一般以.ppk后缀结尾,比如另存为id_rsa.ppk
  • putty密钥登录
    使用putty登录的时候,填好服务器地址之后,在
    Connection -> Data 界面,Auto-login username 填入你的用户名
    Connection -> SSh -> Auth 界面,Private key file for authentication, browse选择你的私钥文件id_rsa.ppk,
    然后你可以把这些配置save下,以后就不用每次都配置一遍;最后点open, 当当当当,直接就登入进去了

推荐阅读更多精彩内容