windows远程连接ubuntu-(密码登录、密钥登录、免密登录)
Windows使用ssh连接ubuntu 20.04.4服务器。详细记录了密码登录、密钥登录、免密登录操作的流程。
入坑前的必备小知识:
什么是公钥登录?
所谓"公钥登录",就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
来自阮一峰大大~传送门
什么是authorized_keys?
authorized_keys 是linux 操作系统下,专门用来存放公钥的地方,只要公钥放到了服务器的正确位置,并且拥有正确的权限,你才可以通过你的私钥,免密登录linux服务器
什么是SSH?
SSH为Secure Shell的缩写,由IETF的网络小组所制定;SSH为建立在应用层基础上的安全协议,专为远程登陆绘画和其它网络服务提供安全性的协议。
SSH提供两种级别的安全验证。
在Ubuntu上启用SSH
安装openssh-server软件包
sudo apt update //更新可用的包列表
sudo apt install openssh-server //安装
sudo systemctl status ssh // 查看ssh状态
sudo systemctl start ssh // 启用ssh
ip a //获取服务器ip地址
ipconfig //Windows命令行,获取本地ip地址
报错:
下列软件包有未满足的依赖关系:
openssh-server : 依赖: openssh-client (= 1:7.6p1-4ubuntu0.6)
依赖: openssh-sftp-server 但是它将不会被安装
推荐: ssh-import-id 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
解决办法:
sudo apt install openssh-client=1:7.6p1-4ubuntu0.6 --这是因为安装的openssh-server版本与openssh-client版本不匹配,需要将openssh-client降级
使用密码登录:
ssh username@ip_address 首次连接时会问一些问题,直接y
可以看见上文中出现了以下内容:
The authenticity of host '192.168.150.136 (192.168.150.136)' can't be established.
ECDSA key fingerprint is SHA256:gcmwE7NXurBUKvUnfkMWldmP2j8n3dEgG3Z1JtdwJvI.
经过查阅,这是因为远程登录Linux的时候,Linux都会检查一下当前访问的计算机公钥是否在~/.ssh/know_hosts中,这个文件是OpenSSH记录的。当下次访问相同的计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免受到DNS Hijack之类的攻击。
解决办法(不推荐):
使用密钥登录:
概述:先在本地生成密钥对,随后将公钥上传到Ubuntu中存储起来,再进行一系列操作。
1.在本地创建密钥对
首先在本地计算机终端窗口中导航到.ssh目录(没有则新创建一个)
cd Users/莫西/.ssh 生成密钥对
ssh-keygen -t ed25519 -f moxi_ed25519 -C "moxi@moxi"
2.将本地生成的公钥上传到服务器
scp C:/Users/莫西/.ssh/moxi_ed25519.pub moxi@192.168.150.136:.ssh
3.在ubuntu中执行:cat ~/.ssh/moxi_ed25519.pub >> ~/.ssh/authorized_keys
4.修改属性:
sudo chmod 600 authorized_keys
sudo chmod 700 ~/.ssh
5.修改Ubuntu的/etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
改成这样:::去掉前面的#
PubkeyAuthentication yes
PasswordAuthentication no
6.重启ssh
sudo service sshd restart
7.使用密钥连接ubuntu
ssh -i ~/.ssh/moxi_ed25519 moxi@192.168.150.136
实现免密登录:
ssh-add C:/Users/莫西/.ssh/moxi_ed25519
报错:Error connecting to agent: No such file or directory
解决办法:使用管理员身份打开PowerShell
Set-Service ssh-agent -StartupType Manual
Start-Service ssh-agent
成功啦~
一些报错小经验:
Linux命令说明:
ssh-keygen --密钥认证
参数说明:
scp --远程拷贝文件
参数说明:
cat --在终端设备上显示文件内容
参数说明:
chmod命令 --改变文件或目录权限
参数说明: Linux chmod 命令 | 菜鸟教程 自己看吧哈哈哈
nano命令 --字符终端文本编辑器
更多推荐
所有评论(0)