Linux配置ssh使用公钥登录远程服务器
起因
Windows
更新了Ubuntu18.04
子系统, 于是就下载下来体验一波, 结果发现, 稍微设置一下, 很合我的胃口…
对我来说, 用虚拟机来做开发服务器的, 什么Vmware
、VirtureBox
之类的, 统统可以卸载了啊…
用了一段时间之后, 就想着, 这个界面挺不错的, 那直接拿这个来当ssh
客户端好了, 什么XShell
之类的也可以卸载了啊…
但是为题来, 每次使用ssh
连接远程服务器, 都有输入密码, 有些密码及其复杂, 根本不可能记得住, 这咋搞, 于是乎….
来折腾一波ssh
直接连接远程服务器的配置过程…
过程
安装openssh-server
sudo apt-get update |
依次执行以上命令, 安装ssh
服务, 通常情况下, 子系统下已经安装好了这个服务了, 那就可以忽略这一步.
生成公钥和密钥
使用当前用户执行
ssh-keygen |
一直安回车,生成的公钥和密钥在用户文件夹下的 ~/.ssh
.
cat ~/.ssh/id_rsa.pub |
执行上面的命令, 将公钥的内容复制到粘贴板
在远程服务器上操作(远程服务器ssh服务装好的情况)
登录远程服务器执行:
vi ~/.ssh/authorized_keys |
将粘贴板的内容复制到文件中,或者利用sftp
工具, 将本地的id_rsa.pub
上传到远程服务器,执行
cat id_rsa.pub >> ~/.ssh/authorized_keys |
用vi打开/etc/ssh/sshd_config这个文件
将下面几行前面“#”注释取掉
RSAAuthentication yes |
重启ssh服务
service sshd restart |
本地操作
在~/.ssh/中创建config文件
vi ~/.ssh/config |
填入如下内容:
Host AAAAAA |
其中
- Host 是别名
- HostName ip地址
- User 远程服务器的登录用户名
- Port 远程登录的ssh端口与
- IdentityFile 本地服务器的私钥地址
修改config文件的权限
chmod 700 ~/.ssh/config |
使用
输入以下命令, 就可以直接连接远程服务器了, 其中AAAAAA
是config
文件中指定的Host
的值…
ssh AAAAAA |
END
emmmmmmmmmmmm, Enjoy it !!