起因

Windows更新了Ubuntu18.04子系统, 于是就下载下来体验一波, 结果发现, 稍微设置一下, 很合我的胃口…

对我来说, 用虚拟机来做开发服务器的, 什么VmwareVirtureBox之类的, 统统可以卸载了啊…

Ubuntu18.04子系统
Ubuntu18.04子系统

用了一段时间之后, 就想着, 这个界面挺不错的, 那直接拿这个来当ssh客户端好了, 什么XShell之类的也可以卸载了啊…

但是为题来, 每次使用ssh连接远程服务器, 都有输入密码, 有些密码及其复杂, 根本不可能记得住, 这咋搞, 于是乎….

来折腾一波ssh直接连接远程服务器的配置过程…

过程

安装openssh-server

1
2
sudo apt-get update
sudo apt-get install openssh-server

依次执行以上命令, 安装ssh服务, 通常情况下, 子系统下已经安装好了这个服务了, 那就可以忽略这一步.

生成公钥和密钥

使用当前用户执行

1
ssh-keygen

一直安回车,生成的公钥和密钥在用户文件夹下的 ~/.ssh.

1
cat ~/.ssh/id_rsa.pub

执行上面的命令, 将公钥的内容复制到粘贴板

在远程服务器上操作(远程服务器ssh服务装好的情况)

登录远程服务器执行:
1
vi ~/.ssh/authorized_keys

将粘贴板的内容复制到文件中,或者利用sftp工具, 将本地的id_rsa.pub上传到远程服务器,执行

1
cat id_rsa.pub >> ~/.ssh/authorized_keys

用vi打开/etc/ssh/sshd_config这个文件

将下面几行前面“#”注释取掉

1
2
3
RSAAuthentication yes 
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

重启ssh服务
1
service sshd restart

本地操作

在~/.ssh/中创建config文件

1
vi ~/.ssh/config

填入如下内容:

1
2
3
4
5
Host AAAAAA
HostName youipaddress
User root
Port 22
IdentityFile /home/yourusername/.ssh/id_rsa

其中

  1. Host 是别名
  2. HostName ip地址
  3. User 远程服务器的登录用户名
  4. Port 远程登录的ssh端口与
  5. IdentityFile 本地服务器的私钥地址
config配置
config配置

修改config文件的权限

1
chmod 700 ~/.ssh/config

使用

输入以下命令, 就可以直接连接远程服务器了, 其中AAAAAAconfig文件中指定的Host的值…

1
ssh AAAAAA
ssh连接
ssh连接

END

emmmmmmmmmmmm, Enjoy it !!