免登陆
A机:自己的电脑 B机:需要远程登录的客户端或服务器
这里即A机想通过ssh免密码登录到B机。
ssh 无密码登录需要使用到公钥和私钥。一般是在A机上生成公钥/私钥对,然后将公钥添加到B机中。
- 首先需要在A机下生成公钥/私钥对
ssh-keygen -t rsa -f id_rsa -P ''
参数:-f 生成的文件名 -P 表示密码,-P ” 表示空密码,会在 .ssh 目录下生成 id_rsa 和 id_rsa.pub。
注:因为在我的 .ssh 目录下还有其他公钥/私钥对,例如用来连接github的公钥/私钥对,如果你也有其他公钥/私钥对,为了混淆,建议进行了重新命名。如果重命名了不会生成在 .ssh 目录中,就需要手动把 id_rsaxxx 私钥文件移动到当前用户的 .ssh 目录下。
- 将产生的公钥复制到 B 机的用户目录下
scp id_rsa.pub 登录用户名@IP地址(或域名):/home/用户名/id_rsa.pub
- 先通过 A 机使用密码登录 B 机,将公钥追加到 authorzied_keys 中
远程登录命令:
ssh -l 用户名 IP地址(或域名)
追加公钥到 authorzied_keys中 :
cat id_rsa.pub >> .ssh/authorized_keys
注:authorzied_keys 的权限要是 600 。
别名登录
Host dev
HostName 10.16.57.215
User root
PubkeyAuthentication yes
Host www
HostName www.ttlsa.com
Port 22
User root
IdentityFile ~/.ssh/id_rsa.pub
IdentitiesOnly yes
选项注释:
HostName 指定登录的主机名或IP地址
Port 指定登录的端口号
User 登录用户名
IdentityFile 登录的公钥文件
IdentitiesOnly 只接受SSH key 登录
PubkeyAuthentication
测试
ssh dev