免密码登录
cd ~/.ssh
ssh-keygen -t rsa #然后敲回车 mv id_rsa.pub master_rsa.pub cat master_rsa.pub >> authorized_keys scp authorized_keys slave1:~/.ssh ssh slave1
大致操作原理:
- ssh-keygen命令生成私钥和公钥
- 公钥复制到需要访问机器的用户的authoritzed_key文件中(默认为~/.ssh,每个用户不同,文件位置可以在/etc/ssh/sshd_config文件中设置)
- 登录时,ssh命令以当前用户的私钥登录,登录主机会在登录用户的.ssh/authorited_key文件下查找是否存在公钥,如果存在则不需要输入密码(默认为~/.ssh/id_rsa,改变此文件位置或文件名需要使用-i选项指定)
主要可能出现的问题
- ssh登录需要使用
- 注意用户名的一致,当前用户名与要登录的用户名不一致时需指定用户名,如
ssh usr2@machine2
- 默认id_rsa如果有文件名或位置改动需要单独指定
- ~/.ssh 文件夹权限问题
某些安全设置问题
- 默认ssh端口不为22(/etc/ssh/sshd_config中更改,服务器有安全需求考虑时)
- root用户不允许远程登录
私钥加密
使用ssh-keygen生成私钥和公钥时,可以指定password phase。
此时登录时需要输入password phase
这种情况避免私钥泄露导致的问题,主要用于安全登录而非免密码登录。
配置文件
/etc/ssh/sshd_config 设置认证方式、端口、root用户登录允许等
修改后重启sshd服务生效
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
网上提到的问题较多,我遇到的问题是 存放的公钥弄错了 ...