如何在Linux中设置无密码SSH登录

时间:2020-02-23 14:39:01  来源:igfitidea点击:

如何建立SSH连接,无需进入远程计算机密码。
通常,使用密码登录可用于快速传输各种机器之间的文件。

环境准备

如果我们有两台机器,客户端和远程机器
几乎所有的工作都将从客户端计算机中完成,该计算机将用于连接到远程设备。
两个设备都是Ubuntu,具有以下IP地址

  • "客户端"机器具有IP"192.168.1.20",其中用户名TUTS
  • "远程"机器具有IP 192.168.1.30,其中包含用户名Hendadel

开始前一件事,请确保使用以下命令对两个计算机进行最新:

sudo apt update
sudo apt upgrade

设置无密码SSH登录

步骤1.从客户端计算机,确保使用下一个命令之前生成的ssh键。

ls -al ~/.ssh/id_*.pub

如果我们在先前没有生成了SSH密钥,则我们将获得"没有这样的文件或者目录"消息。
否则,如果存在,我们将快速获取可用的键。

步骤2.由于我们之前没有生成的SSH键,则使用以下命令生成新的SSH密钥是?

ssh-keygen -t rsa -b 4096

从客户端机生成ssh

通常,上一个命令将在两个不同的文件中生成新的两个SSH键。
这两个文件都存储在当前用户主目录下名为".ssh"的隐藏目录中。
我们可以找到存储在名为ID_DSA的文件中的私钥和名为ID_DSA.PUB的文件中的另一个公钥。
此外,我们将要求我们添加用于保护生成键的密码短语,并且我们可以在通过SSH连接时使用它。
但是我们可以按"输入"按钮不使用一个。

步骤3.现在我们可以列出.ssh目录的内容以确保创建了两个密钥。

ls -l /home/tuts/.ssh/

从客户端计算机验证都会创建两个键

步骤4.此外,我们可以确保文件使用以下命令在其内部有一个密钥:

ssh-keygen -lv

步骤5.预览公钥文件的内容。

cat .ssh/id_rsa.pub

从客户端机显示SSH密钥文件内容

步骤6.现在从远程计算机,请确保安装了SSH。
如果未安装,则可以使用以下命令。

sudo apt install ssh

步骤7.返回客户端计算机,连接到远程计算机,并创建名为.ssh的新目录。

sudo ssh remote_machine_username@remote_machine_IP mkdir -p .ssh

确保将Remote_machine_username替换为具有远程IP的Real用户名和Remote_machine_ip。

从客户端计算机创建远程计算机上的目录

步骤8.接下来,让我们从客户机计算机复制到远程计算机之前生成的公共SSH密钥。
如果将公钥粘贴到名为"授权_keys"的文件中,则会有帮助。
强烈建议不要更改文件名,因为当我们要建立SSH连接时,操作系统将检查的第一个文件是"授权_keys"文件。
如果系统没有找到该文件,则将要求我们输入用户名和密码以便能够登录远程计算机。

sudo cat .ssh/id_rsa.pub | ssh remote_machine_username@remote_machine_IP 'cat >> .ssh/authorized_keys'

从客户端计算机将SSH键复制到远程计算机

步骤9.从远程计算机,请确保使用Name Authorized_keys成功复制公钥。

ls .ssh/
cat .ssh/authorized_keys

从远程计算机检查SSH密钥文件已成功复制

步骤10.现在从客户端计算机,让我们尝试在没有用户名和密码的情况下建立SSH连接。

ssh remote_machine_username@remote_machine_IP

我们可以注意到,我们将不会被要求输入用户名,也不要求密码。

禁用密码身份验证

要使用公钥禁用密码身份验证,首先,需要从远程计算机编辑SSH配置文件并禁用密码验证选项。
以下是这样做的步骤。

步骤1.从远程计算机,使用我们喜欢的编辑器打开SSH配置文件。

vi /etc/ssh/sshd_config

从远程机器打开SSH配置文件

步骤2.滚动到SSH配置文件的末尾,然后添加下几行以禁用密码身份验证:

RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
UsePAM no
ChallengeResponseAuthentication no

从远程计算机编辑SSH配置文件

步骤3.保存并退出文件。

步骤4.最后,重新启动SSH服务并尝试再次从客户端计算机与客户端计算机建立新连接。