编辑配置文件

sudo vim /etc/ssh/sshd_config
Port 8022(因为 Windows 10 的 SSH 端口已经默认被占用,所以我换成了一个新的端口)
(去掉前面的 #)ListenAddress 0.0.0.0
UsePrivilegeSeparation no(原来是 yes 改成 no)#如果没有这句就不需要添加
PermitRootLogin yes(修改成 yes)
(在前面加上 #)StrictModes yes
PasswordAuthentication yes(原来是 no,改成 yes)

4. 在WSL里启动ssh服务:

sudo service ssh start

5. 打开Xshell或Xftp:

选择「新建会话」,新建的会话设置框的「连接」中添加如下内容:

名称:WSL(这个随便填)
协议:SSH
主机:127.0.0.1(本机环回接口)
端口号:8022

然后输入WSL的账号和密码

在启用 ssh 服务时,很可能会看到如下提示:

root@bt:~# /etc/init.d/ssh start
* Starting OpenBSD Secure Shell server sshd                                   
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key

有两个提示 Could not load host key: /etc/ssh/ssh_host_rsa_key 和  Could not load host key: /etc/ssh/ssh_host_dsa_key ,此时如果从客户端连接到服务器时是不会成功的。其原因是在 SSH 连接协议中需要有 RSA 或 DSA 密钥的鉴权。 因此,我们可以在服务器端使用 ssh-keygen 程序来生成一对公钥/私钥对

运行下面命令:


root@bt:/etc/ssh# ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):            #直接回车即可
Enter same passphrase again: 
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
3b:a4:b8:df:a9:15:d1:62:df:d5:d1:41:50:59:4a:96 root@bt
The key's randomart image is:
+--[ RSA 2048]----+
|             .***|
|         .   oE+o|
|        + .   o .|
|       . + . .   |
|        S . .    |
|     . o o       |
|    . . +        |
|     . o o       |
|    ..o.o        |
+-----------------+

上面 ssh-keygen 命令中,-t 选项表示生成的密钥所使用的加密类型,这里选择的是 RSA ;-b 选项表示 bit,后接一个整数,表示加密的位数,该数值越大表示加密的强度越高;-f 选项后接要生成的密钥文件名。根据 /etc/ssh 目录下的 sshd_config 配置文件,RSA 密钥默认识别文件名为 ssh_host_rsa_key 。

命令执行成功后,在 /etc/ssh 下会看到有两个文件生成:ssh_host_rsa_key 和 ssh_host_rsa_key.pub ,前者是私钥,后者是公钥。这样,当再次用 putty 连接时,首先会提示服务器端的加密指纹已经被修改,如果信任则点 yes 继续,否则断开,这里当然是选择信任 yes 。此后,客户端将用公钥对数据进行加密后发往服务器,而服务器收到数据后则用私钥进行解密。

如果登录提示密码不对,需要重新修改root密码 ,sudo passwd root

最新文章

  1. MyBatis1:MyBatis入门
  2. Thread比Task多出的无法代替的部分
  3. Python基础之面向对象
  4. OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)
  5. Spring 文章推荐
  6. Unity脚本生命周期
  7. GIT命令(急速学习)
  8. Spring mvc中使用request和response
  9. [习题]日历(Calendar)控件的障眼法(.Visible属性),使用时才出现?不用就消失?
  10. Verilog HDL常用的行为仿真描述语句
  11. HTML5 Canvas动画效果实现原理
  12. 开发vue但不使用vue-cli和webpack相关注意事项
  13. Calendar 使用
  14. Linux报“ '/usr/bin' is not included in the PATH environment variable”解决方法
  15. 数据库使用:sql server/mysql/sqlite
  16. Vue中 export default 和 export 区别
  17. hadoop sqoop的常用名命令
  18. CS229笔记:线性回归
  19. 10、Dockerfile实战-PHP
  20. Java之所有对象的公用方法>8.Obey the general contract when overriding equals

热门文章

  1. postman的使用大全
  2. 使用offsetof对结构体指针偏移操作
  3. vue数组变异方法
  4. Python使用turtle库与random库绘制雪花
  5. UIAutomator简介
  6. 精心收集的 95 个超实用的 JavaScript 代码片段( ES6+ 编写)
  7. Routing 为 Magento 2 一个重要的部分,本文介绍基本应用
  8. Python【初识篇】简介
  9. Windows下Redis的安装和部署
  10. Elasticsearch6.5.2 X-pack破解及安装教程