自动登录ssh的相关设置,省去了每次都要输入密码的繁琐。对于需要频繁ssh到服务器上进行工作的人来说很有必要[1]。
步骤:
-
首先用账号ssh登录到server上,并执行:
ssh-keygenssh会生成加密对与秘钥。生成时按照指令输入即可,也可全都按Enter略过。
-
进入
.ssh目录,可以看到刚才生成了两个文件xxx_rsa和xxx_rsa.pub。将公钥xxx_rsa.pub的内容加入authorized_keys文件:cat xxx_rsa.pub >> authorized_keys -
回到local机器上,将私钥拷贝至
.ssh目录并改名(如server_key):cd .ssh scp my_account@server_ip:~/.ssh/id_rsa . mv id_rsa server_key -
设置ssh使其自动找到正确的秘钥:
echo "Host server_name" >> config # server_name is the name for your server【这里需要配置你服务的名字,将来ssh登录的时候需要】 echo "Hostname server_ip" >> config #server_ip is the ip of your server【目标服务器ip地址】 echo "IdentityFile ~/.ssh/server_key" >> ~/.ssh/config-config最后的格式应该下面这种,要不然ssh读取配置的时候不会认识
Host dev HostName xx.xxx.xx.xx User your_username Port 22 IdentityFile ~/.ssh/id_rsa -
所有配置完成后ssh登录server只需要输入:
ssh my_account@server_name -
如果登录遇到如下错误问题
Permissions 0644 for '/Users/my_account/.ssh/server_key' are too open只需要
chmod 400 server_key