Linux配置SSH免密登录

Posted Xavier Jiezou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux配置SSH免密登录相关的知识,希望对你有一定的参考价值。

简介

每次在本地计算机上通过 SSH 远程连接 Linux 服务器的时候都需要输入密码,非常繁琐,今天教大家如何配置免密登录。

教程

  1. 在本地通过 RSA 加密算法生成公私钥对
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_test
  • t:指定加密类型
  • b:指定加密字长
  • f:指定保存路径
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_blog
Generating public/private rsa key pair.
Enter file in which to save the key (C:\\Users\\87897/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\\Users\\87897/.ssh/id_rsa.
Your public key has been saved in C:\\Users\\87897/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:uV8DJX7MT9dAGBUdVDtIkidM4ULSCXOyfMK8Z+S4RXY 87897@ZXC-LAPTOP
The key's randomart image is:
+---[RSA 4096]----+
|       =oo+++===+|
|      + Bo.++o. o|
|       * *.E+..o |
|        Xoo=   .o|
|       oS=o + . o|
|        =. o o . |
|       ..   o .  |
|         . . .   |
|          .      |
+----[SHA256]-----+
  1. 从本地拷贝公钥(后缀为 .pub 的文件 )到 Linux 服务器(SCP 远程文件传输教程:点击跳转
scp -P 22 ~/.ssh/id_rsa_test.pub user@host:~/.ssh/
  1. 在远程 Linux 服务器中追加公钥到文件 authorized_keys
cat id_rsa_test.pub >> authorized_keys
  1. 在本地 ssh 配置文件 ~/.ssh/config 中添加如下配置信息
Host host
    HostName host
    User user
    IdentityFile ~/.ssh/id_rsa_test
  • Host:远程服务器的 IP 地址
  • HostName:远程服务器的 IP 地址
  • User:远程服务器的用户名称
  • IdentityFile:本地私钥保存路径

注意

远程 Linux 服务器必须开启公钥密码验证和 RSA 加密验证,允许免密登录,并确保加密验证文件正确。

  1. 首先,查看 SSH 配置文件
sudo cat /etc/ssh/sshd_config
  1. 可以看到公钥密码验证和 RSA 加密验证都是 yes,加密验证文件是 .ssh/authorized_keys
PubkeyAuthentication yes
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
  1. 如若不然,请联系管理员修改配置文件
sudo vi /etc/ssh/sshd_config

参考

Visual Studio Code 远程开发疑难解答提示和技巧

插画

【画师】防人 【P站ID】79919440

以上是关于Linux配置SSH免密登录的主要内容,如果未能解决你的问题,请参考以下文章

linux配置了免密,如何不使用免密登录

Linux——配置服务器间的免密登录

linux下配置远程免密登录方法教程

Archlinux配置免密Samba

Linux下配置ssh免密远程登录

Linux配置SSH免密登录