Linux设置密钥登录
使用密钥登录分为以下步骤:
1、生成密钥(公钥与私钥)
2、放置公钥(Public Key)到服务器指定用户目录的 .ssh/authorized_key文件中;
3、配置SSH客户端使用密钥登录。
4、测试密钥登陆成功后关闭密码登录。【可选】
1.生成密钥
cd /root/.ssh #进入指定用户的.ssh目录 ssh-keygen -t rsa
[root@springcore .ssh]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): #### 要设置密码的话 就在这里输入【可直接为空跳过】 Enter same passphrase again: #### 重复输入密码 Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:syK0IidyNKGBvLWCLYBIxP3bqthqeBWr/ehCuGwU8WQ root@springcore The key's randomart image is: +---[RSA 3072]----+ |oo. | |*o E | |*.*.. | |o=ooo. | |++=..oo S | |.+oooo . o | |Bo++o o . | |+O*..+ . | |o+.=+.. | +----[SHA256]-----+
执行后会生成id_rsa和id_rsa.pub两个文件,id_rsa是私钥(重要,不能外泄),id_rsa.pub是公钥。
2.放置公钥(Public Key)到服务器指定用户目录的 .ssh/authorized_key文件中
1.查看authorized_key文件是否存在,不存在则创建并赋予600权限
touch authorized_keys chmod 600 ./authorized_keys
2.将公钥内容追加到authorized_keys文件中。
cat id_rsa.pub >> authorized_keys
3.为了确保连接成功,赋予.ssh文件夹700权限
chmod 700 ~/.ssh ###修改为指定用户的ssh目录,这里以root用户为例
3、配置SSH客户端使用密钥登录。
1.修改SSH配置
vi /etc/ssh/sshd_config
修改以下配置项
## 开启私钥登录[RSAAuthentication (rsa认证)是只支持第一代SSH通讯协议使用的配置项,在CentOS7.3之后的版本中被废除了,因为默认使用第二代协议了] RSAAuthentication yes ## 开启 公私钥登录认证 PubkeyAuthentication yes ## root 用户能否通过 SSH 登录 PermitRootLogin yes ## 添加 公钥的保存文件 AuthorizedKeysFile .ssh/authorized_keys
2.刷新SSH服务
service sshd restart
4、测试密钥登陆成功后关闭密码登录。【可选】
1.修改SSH配置
vi /etc/ssh/sshd_config
修改以下配置项
PasswordAuthentication no
2.刷新SSH服务
service sshd restart