入坑前的必备小知识:

什么是公钥登录?

    所谓"公钥登录",就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

    来自阮一峰大大~​​传送门​

什么是authorized_keys?

     authorized_keys 是linux 操作系统下,专门用来存放公钥的地方,只要公钥放到了服务器的正确位置,并且拥有正确的权限,你才可以通过你的私钥,免密登录linux服务器

    传送门2   -张志明的个人博客​​    

    ​​传送门3 authorized-keys​

什么是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命令 --字符终端文本编辑器

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐