// 卸载
sudo apt-get remove openssh-server
// 安装
sudo apt-get install openssh-server
// 编辑配置文件
// vim /etc/ssh/sshd_config
Port 2222 # 默认的是22,但是windows有自己的ssh服务用的也是22端口,修改一下
PermitRootLogin yes
PasswordAuthentication yes
// 重启ssh服务
sudo service ssh --full-restart
重启ssh 服务出现:
sshd: no hostkeys available — exiting
解决过程:
#ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
#ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
#/usr/sbin/sshd
运行命令:
原因:
有两个提示 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 程序来生成一对公钥/私钥对
上面 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
XShell 连接
在 xshell 中使用 Alt + N 创建新的连接会话, 主机 改为 127.0.0.1 ,端口 改为自己设置的端口 如2222点击左侧的用户身份验证, 方法使用Password, 用户名和密码为Ubuntu用户名密码, 点击连接
连接地址:127.0.0.1:2222
连接用户信息:ling ling
指导参考:
https://www.jianshu.com/p/039411d2c1f6
https://www.pianshen.com/article/79041355884/
http://biancheng.dnbcw.net/linux/356658.html
https://www.cnblogs.com/slqt/p/10603973.html
https://www.cnblogs.com/zzhaolei/p/11068189.html