免密码登录linux服务器
想要面密码登录linux服务器。需要对自己的ssh客户端以及需要登录的宿主机做一些配置!
第一步 生成创建公钥
如果你已经创建过公钥,就可以跳过这个步骤。没有的话就先创建公钥,
ssh-keygen -t rsa
执行成功以后在~/.ssh/ 下会有id_rsa.pub 文件生成
第二步 把公钥id_rsa.pub复制到远程机器
cat ~/.ssh/id_rsa.pub | ssh root@这里替换成服务器的IP "if [ ! -d '~/.ssh' ]; then mkdir ~/.ssh; fi; cat >> ~/.ssh/authorized_keys"
第三步 设置远程登陆用户
在客户端的~/.ssh/config中增加以下配置
Host 这里替换成宿主机的IP
user root
封装一个简单的shell函数
function onebox_ssh_init(){
cat ~/.ssh/id_rsa.pub | ssh $2@$1 "if [ ! -d '~/.ssh' ]; then mkdir ~/.ssh; fi; cat >> ~/.ssh/authorized_keys"
echo "Host $1" >> ~/.ssh/config
echo "\tuser $2" >> ~/.ssh/config
}
把这个脚本放入到自己的.bashrc 或者.zshrc 里面
新增一个宿主机的时候先执行
- ssh-keygen -t rsa
- onebox_ssh_init 服务器IP 登录用户名 ,提示需要宿主机的登录密码:*
这样就初始化工作,以后只需要直接ssh 服务器IP 就可以免密码登录linux服务器。
备注
介绍的方法适用于全部的linux主机免密码登录,大家根据自己的需要,稍加调整就能定义自己顺手的免密码登录脚本