~/.ssh/authorized_keys
文件中。Linux远程登录SSH免密码配置方法
准备工作
1、确认系统已经安装了SSH:确保两台机器都已安装并启用了SSH服务,可以使用以下命令检查SSH是否已安装:
```sh
rpm -qa | grep ssh
```
如果未安装,可以通过以下命令进行安装:
```sh
yum install ssh
```
2、生成秘钥对:使用ssh-keygen
命令生成公钥和私钥,默认情况下,它们存储在/root/.ssh
目录下。
```sh
ssh-keygen -t rsa
```
3、拷贝公钥到目标服务器:将生成的公钥(id_rsa.pub)拷贝到目标服务器的~/.ssh/authorized_keys
文件中,可以使用ssh-copy-id
命令简化这一过程:
```sh
ssh-copy-id -i ~/.ssh/id_rsa.pub <target_username>@<target_hostname>
```
4、验证免密登录:尝试从源机器通过SSH登录到目标机器,无需输入密码即可成功连接。
详细步骤
1、修改主机名和配置文件:
使用hostnamectl set-hostname <new_hostname>
命令设置主机名。
编辑/etc/hosts
文件,添加静态IP与主机名的映射关系。
2、为新用户配置SSH秘钥:
分别给两台机器上的luser用户创建.ssh
目录,生成SSH秘钥,并将公钥拷贝到另一台机器上。
设置目录权限,确保~/.ssh
目录权限为700,authorized_keys
和id_rsa
文件权限为600。
3、指定用户登录其他机器:切换到luser用户,使用SSH命令登录到目标机器。
```sh
su luser
ssh luser@linux02
```
4、多机操作脚本:通过Shell脚本实现一台机器操作多台机器做同样的工作,或实现文件的远程拷贝,示例脚本如下:
```sh
#!/bin/bash
cmd=$
cddirname $0
path_dir=pwd
ips_arr=(cat ${path_dir}/ips
)
for ip in "${ips_arr[@]}"; do
cmd_="ssh luser@$ip $cmd"
if eval $cmd_; then echo 'ok'; else echo 'fail'; fi
done
```
5、文件拷贝脚本:实现将一个机器内的文件拷贝到其他机器上,示例脚本如下:
```sh
#!/bin/bash
source_=$1
target=$2
cddirname $0
path_dir=pwd
ips_arr=(cat ${path_dir}/ips
)
for ip in "${ips_arr[@]}"; do
cmd_="scp $source_ luser@$ip:$target"
if eval $cmd_; then echo 'ok'; else echo 'fail'; fi
done
```
相关问题与解答
1、Q: 如何确保SSH服务已启动?
A: 可以使用以下命令检查SSH服务状态并启动它:
```sh
systemctl status sshd
systemctl start sshd
```
2、Q: 如果公钥拷贝失败怎么办?
A: 确保目标机器的~/.ssh
目录存在,并且有正确的权限,如果目录不存在,可以手动创建并设置权限:
```sh
mkdir -p ~/.ssh
chmod 700 ~/.ssh
```
3、Q: 如何撤销SSH免密码登录?
A: 删除目标机器上的~/.ssh/authorized_keys
文件中的相关公钥条目,或者直接删除该文件并重新生成新的SSH密钥对。
各位小伙伴们,我刚刚为大家分享了有关“linux远程登录ssh免密码配置方法”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!