Linux如何实现SSH免密登录?

Linux系统管理和运维实践中,SSH免密登录是一项关键且实用的技术手段。它基于公钥/私钥对的身份验证机制,旨在简化远程登录过程,提高操作流畅度及响应速度,尤其对于频繁执行自动化运维任务或维护多节点分布式环境尤为重要。

本文旨在详细介绍如何在Linux环境下实现SSH免密登录的配置流程,从而帮助用户轻松地在不同的Linux主机间建立安全、高效的无密码访问通道,同时也会强调实施过程中应注意的安全措施,以防止未经授权的访问。

配置过程

1、拓扑图

Linux如何实现SSH免密登录?

2. 在客户端A创建密钥对

ssh-keygen -t dsa
Linux如何实现SSH免密登录?

备注:”-t”选项表示使用的加密算法,可以使用dsa和rsa\

3. 在客户端A下发公钥到远程服务器A

ssh-copy-id -i ~/.ssh/id_dsa.pub -p 22  monitor@10.68.20.9
Linux如何实现SSH免密登录?

4. 服务端A查看公钥信息

ls -l ~/.ssh/authorized_keys
Linux如何实现SSH免密登录?

5. 客户端A验证登录

ssh monitor@10.68.20.19
Linux如何实现SSH免密登录?

知识扩展

一、解决Linux SSH到远程服务器,连接响应慢的问题

1. 备份服务端A的配置

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bk

2. 修改ssh配置

# vi /etc/ssh/sshd_config
PermitRootLogin no
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no

备注:

  • PermitRootLogin:是否允许root登录,yes表示允许,no表示禁止;
  • PerminEmptyPasswords:是否允许密码为空的远程用户登录,默认是no;
  • UseDNS:是否应该对远程主机名进行反向解析,以检查此主机名是否与其IP地址真实对应,默认是yes,建议是改成no,可以提高连接速度;
  • GSSAPIAuthentication:SSH服务器是否允许使用GSSAPI协议进行用户身份验证,建议设置为no,可以提高ssh登陆的速度和减低复杂性。

二、SSH服务中ssh_config 和sshd_config文件的区别

1. ssh_config:SSH客户端的全局配置文件,位于用户的家目录下的~/.ssh/config或者系统级别的/etc/ssh/ssh_config(全局配置通常供所有用户共享)。它定义了SSH客户端的行为和连接参数,如主机别名、默认端口、密钥文件、压缩选项、隧道设置等。其目的是提供了一种灵活的方式来定制和简化SSH客户端连接到远程主机时的参数,避免每次连接都需要手动输入冗长的命令选项。

2. sshd_config:是SSH服务端的配置文件,通常位于/etc/ssh/sshd_config。它包含了所有关于SSH服务器的配置设定,包括监听端口、允许登录的用户、公钥认证、密码策略、安全设置(如MAC、加密算法等)、登录限制、日志记录等。其目的是控制和管理SSH服务的运行方式,决定了哪些用户可以用何种方式登录服务器,以及服务器如何处理各种连接请求和安全策略。

上面所谓的客户端和服务端是指多台服务器,当服务器A和服务器B,A服务SSH去连接B服务器,A则为客户端,B则为服务端;总而言之,ssh_config影响的是从本机发起SSH连接的行为,而sshd_config则决定了服务器如何响应和处理来自客户端的SSH连接请求。

来源:Linux运维之旅

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/273685.html

(0)
明月予我的头像明月予我bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!