SSH免密码登陆备忘
简化从Mac登录Linux主机的操作步骤,提高效率。所谓的“免登陆”其实是不存在的,只是说,从验证密码的登录方式,改为 公私钥对的登录验证方式。使用后者的方式,每次会由ssh客户端自动发送验证信息,所以就免去了人工输入密码,看起来好像“免登陆”一样。
关于这么做的原理,大家可以自己去Google,关键词是“非对称加密”,“RSA算法”,“基于ssh密钥对的自动登录”,等等,我就不多解释了。我直接说操作步骤吧:
-
生成密钥对
-
用密码登录远程主机,将公钥拷贝过去
---------------------------------------
1.执行命令 ssh-keygen -t rsa
执行结果如下:
charles@mac:~ > ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/charles/.ssh/id_rsa):
Created directory '/Users/charles/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/charles/.ssh/id_rsa.
Your public key has been saved in /Users/charles/.ssh/id_rsa.pub.
The key fingerprint is:
c8:4b:85:87:90:7c:1a:67:b6:71:f5:51:0c:9d:a2:89 charles@TCMBP.local
The key's randomart image is:
+--[ RSA 2048]----+
| ... .. o=.. |
| +.*o. ...+ |
| Bo+o. o.. |
| ...+E o |
| + S |
| . . |
| . |
| |
| |
+-----------------+
注意:提示enter passphrase的时候,不要输入,因为你本来就想少打一次密码的,这里如果设置了用密码保护私钥,那登录的时候还是要输密码,就白做了。
做完这个步骤后,cd ~/.ssh,你就可以看到你刚才生成的密钥对,id_rsa是私钥,id_rsa.pub是公钥。下一步,就是把公钥拷贝到目标主机上。
cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqCxYknpzX6bLCr6nCmh........
2. 登陆到远程机上,将公钥的内容copy到下面的文件里面
vim ~/.ssh/authorized_keys
将上面的内容加入即可,当下一次登陆远程机的时候,就直接ssh root@remoteserver即可。