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

简介: 【2月更文挑战第8天】

SSH(Secure Shell)是一种安全网络协议,用于在不安全的网络上安全地进行远程登录和执行命令。在 Linux 系统中,使用 SSH 可以方便地远程连接到其他计算机,并且还可以通过配置无密码登录来提高操作的便利性和安全性。本文将介绍如何在 Linux 中设置 SSH 无密码登录。

1. 生成 SSH 密钥对

首先,我们需要生成一对 SSH 密钥,其中包括私钥和公钥。私钥将保存在本地主机上,而公钥将被复制到远程主机上以进行身份验证。

在终端中执行以下命令来生成 SSH 密钥对:

ssh-keygen -t rsa

生成命令会要求你输入密钥文件的保存路径和文件名,以及一个可选的密码(用于保护私钥)。如果你没有指定路径和文件名,则默认情况下将在 ~/.ssh 目录下生成密钥文件 id_rsaid_rsa.pub

2. 复制公钥到远程主机

接下来,我们需要将公钥复制到远程主机上,以便进行身份验证。

在终端中执行以下命令来复制公钥到远程主机(假设远程主机的 IP 地址为 remote_host,用户名为 username):

ssh-copy-id username@remote_host

执行该命令后,系统会要求你输入远程主机的密码。输入正确的密码后,公钥将被复制到远程主机上的 ~/.ssh/authorized_keys 文件中。

如果 ssh-copy-id 命令不可用,你可以手动将公钥内容复制到远程主机的 ~/.ssh/authorized_keys 文件中。使用以下命令将公钥复制到远程主机:

cat ~/.ssh/id_rsa.pub | ssh username@remote_host 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

3. 配置 SSH 连接

一旦公钥被成功地复制到远程主机上,我们需要对 SSH 连接进行一些配置,以确保无密码登录的顺利进行。

  1. 打开 SSH 配置文件:

    sudo vi /etc/ssh/sshd_config
    
  2. 确保以下设置被正确配置:

    RSAAuthentication yes
    PubkeyAuthentication yes
    PasswordAuthentication no
    

    上述设置将启用 RSA 密钥身份验证,并禁用密码身份验证。

  3. 保存并关闭文件。

  4. 重启 SSH 服务以使更改生效:

    sudo service ssh restart
    

无密码登录测试

现在,你应该可以通过无密码登录的方式连接到远程主机。

在终端中执行以下命令来测试无密码登录(假设远程主机的 IP 地址为 remote_host,用户名为 username):

ssh username@remote_host

如果一切顺利,你将能够无需输入密码即可成功登录到远程主机。

总结

通过设置 SSH 无密码登录,我们可以方便地进行远程连接并保护远程主机的安全性。本文介绍了在 Linux 中设置 SSH 无密码登录的步骤,包括生成密钥对、复制公钥到远程主机以及配置 SSH 连接。通过正确设置和使用 SSH,你可以更加安全地管理远程主机,并提高工作效率。

目录
相关文章
|
6月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
367 14
|
7月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
398 24
|
7月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
172 18
|
8月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
712 25
|
2月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
300 146
|
5月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
1615 0
|
8月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
377 10
|
安全 Linux Shell
Linux中SSH命令介绍
Linux中SSH命令介绍
618 2
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
监控 安全 Ubuntu
在Linux中,如何进行SSH服务配置?
在Linux中,如何进行SSH服务配置?