banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

[Linux]使用SSH-KEY方式登录SSH

管理 Linux 主机多了之后,管理大量的登录密码是一件很麻烦的事情,使用 SSH-KEY 方式登录服务器可以很好的解决问题。 以下是使用 SSH-KEY 方式实现客户端免密码登录 SSH 的方法。一套 SSH-KEY 可以等遍所有的服务器。

1. 使用 ssh-keygen 在本地创建登录远程 SSH 服务器使用的公钥和私钥

ssh-keygen -t [rsa|dsa] -C "comments"

-t 可选择 RSA 和 DSA 两种密钥#

-C 可选注释#

一路 enter 之后,会在~/.ssh 目录下创建两个文件 id_dsa #私钥,妥善保存好。 id_dsa.pub #公钥

2. 将公钥复制到服务器上对应用户的~/.ssh/ 目录下。

3. 在服务器用户的~/.ssh/ 目录下执行

cat id_dsa.pub >>authorized_keys

首次使用的时候#

chmod 600 authorized_keys

需要注意的是出于安全考虑,authorized_keys 必须是 600 权限

4. 修改 /etc/ssh/sshd_config,确认一下 SSHD 的 publickey 验证模式是否打开

# 是否允许公钥认证。仅可以用于 SSH-2。
PubkeyAuthentication yes|no #ssh-2 打开

是否允许使用纯 RSA 公钥认证。仅用于 SSH-1。#

RSAAuthentication yes|no #ssh-1 打开

5. 退出远程服务器,尝试再次登录远程服务器

ssh xxx.xxx.xxx.xxx

6. 修改 /etc/ssh/sshd_confg,根据需要关闭 SSHD 的密码验证 # 是否允许使用基于密码的认证。 PasswordAuthentication yes|no # 是否允许质疑 - 应答 (challenge-response) 认证 ChallengeResponseAuthentication yes|no

7. 对于 MACOS 系统可以在本地对 SSH 连接进行配置,打开~/.ssh/Config 并编辑文件,没有可以创建新文件

Host XXX.XXX.XXX.XXX
HostName XXXX.com
Port 22
User root

偏好设置为公钥认证#

PreferredAuthentications publickey

私钥文件位置#

IdentityFile ~/.ssh/id_dsa

参考 http://www.2cto.com/os/201401/272738.html

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。