前言
自从用linux系统作为主开发系统,远程登录服务器一直用的ssh手动输入,奈何经常登录输入很多很烦(程序员怎么能忍受做这么多重复事情),查阅资料总结了一套可以用ssh自带的配置完成自动免密登录远程服务器。
假设服务器账号
服务器备注名:aliasname
登录user:username
远程服务器ip:ip
默认端口号和协议:22、ssh
公钥私钥文件名:secret
私钥文件密码:secretpwd
(登录密码不需要)
1.配置alias
-
编辑
~/.ssh/config文件,如果没有请创建vi ~/.ssh/config -
添加如下格式
host aliasname user username hostname ip port 22 #IdentityFile ~/.ssh/secret 可以先不配置,这个一会会配置 -
配置完之后你已经可以使用
ssh aliasname登录了但是这样你每次还是需要输入密码,麻烦,接下来配置免密登录
2.配置秘钥对
-
进入ssh配置目录
cd ~/.ssh/config -
ssh-keygen -f secret生成公钥和私钥 。输入密码secretpwd(自定义的) -
公钥上传到远端服务器。
ssh-copy-id -i secret.pub username@ip输入密码
3.添加秘钥对到代理
要把私钥配置给代理,并且配置私钥路径给config
-
添加代理,使用一下代码
eval "$(ssh-agent -s)" ssh-add ~/.ssh/secret`这里需要输入私钥文件密码,密码是刚才你自定义的,如
secretpwd- 配置config文件
在你刚才配置的文件下方加上一行
IdentityFile ~/.ssh/secret可以先不配置,这个一会会配置host aliasname user username hostname ip port 22 #IdentityFile ~/.ssh/secret
4.免密登录尝试
ssh aliasname登录成功
总结
- 配置config文件可以轻松记录ssh账户名、ip
- 使用公私钥对来完成自动登录