本文主要介绍ssh免密访问Ubuntu。

前言

What is SSH:

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题

SSH广泛使用的协议,用于安全的访问Linux服务器。

今天我们主要介绍ssh免密访问Ubuntu,其中:

  • 客户端(mac)
  • 服务器(Ubuntu)

实现步骤大致如下:

  1. 安装ssh服务
  2. ssh客户端生成生成公钥和私钥
  3. 上传公钥到服务器

安装ssh的服务端

在Ubuntu安装ssh服务(这里我使用的是vm默认安装):

sudo apt-get install openssh-server

重启服务

service ssh restart

ssh生成密钥

在Mac,生成密钥的命令:

ssh-keygen

生成的密钥路径: $HOME/.ssh 查看是否生成成功:

cd $HOME/.ssh
ls
id_rsa      id_rsa.pub

说明生成成功,其中id_rsa为私钥、id_rsa.pub为公钥。公钥将上传到你要连接的服务器,而私钥则存储在你将用来建立连接的计算机上。接着,将公钥钥上传到Ubuntu:

ssh-copy-id userName@ServerIp

Eg:

ssh-copy-id jefffff@192.168.1.88

接着,查看是否上传成功, 密钥会增加到Ubuntu,路径为$HOME/.ssh/authorized_key

免密访问

接着就可以ssh免密访问服务器了:

ssh -i ~/.ssh/id_rsa -p 22 -l userName ServerIp

Eg::

 [master] ssh -i ~/.ssh/id_rsa -p 22 -l jefffff 192.168.1.88
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-131-generic x86_64)
... 省略一些

*** System restart required ***
Last login: Sat Dec  9 09:21:34 2022 from 192.168.1.33
jeffffff@ubuntu1~$

说明,登入成功。

iterm2配置

为了更方便的访问,可以在iterm2(mac)配置

小结

使用SSH的访问Linux方式有密码和密钥两种方式,使用密钥相对于默认的密码方式优点有: 其一,密码更容易被暴力破解,密钥访问更安全。 其二,亦可通过修改sshd_config配置,来开闭用户对服务器的访问。 文中还通过一个Mac密钥登入Ubuntu的例子,来演示免密访问过程。

参考