写一个Linux免密登录的shell脚本
时间: 2023-04-05 13:04:43 浏览: 178
我可以回答这个问题。您可以使用ssh-keygen命令生成公钥和私钥,然后将公钥添加到目标Linux服务器的authorized_keys文件中。这样,您就可以通过ssh连接到服务器而无需输入密码。具体步骤可以参考以下链接:https://www.linuxidc.com/Linux/2018-01/150845.htm
相关问题
使用shell写一个Linux批量免密的脚本
以下是一个简单的脚本,可以批量将本地的公钥添加到多台远程Linux机器的authorized_keys文件中,实现免密登录。
```shell
#!/bin/bash
# 定义远程主机的IP地址和用户名
hosts=(
"192.168.1.100 root"
"192.168.1.101 root"
"192.168.1.102 root"
)
# 生成本地公钥
ssh-keygen -t rsa
# 循环遍历所有主机
for host in ${hosts[@]}
do
# 获取主机IP和用户名
ip=$(echo $host | cut -d ' ' -f 1)
user=$(echo $host | cut -d ' ' -f 2)
# 将本地公钥复制到远程主机的authorized_keys文件中
ssh-copy-id -i ~/.ssh/id_rsa.pub $user@$ip
done
```
请注意,使用此脚本需要在本地生成公钥,并且每个远程主机需要安装ssh服务。您还需要确保可以通过SSH连接到这些主机,否则将无法将本地公钥复制到远程主机上。
编写一个liunx免密登录脚本
### 回答1:
可以使用ssh-keygen来创建RSA密钥对,然后将公钥拷贝到服务器上,以便连接到服务器而无需密码。可以使用下面的脚本来自动完成这个过程:#!/bin/bash# 生成RSA密钥对
ssh-keygen -t rsa# 拷贝公钥到服务器
ssh-copy-id user@hostname# 登录服务器
ssh user@hostname
### 回答2:
编写一个Linux免密登录脚本主要包括以下步骤:
1. 首先,需要在本地生成SSH公钥和私钥对,用于与目标服务器之间的身份验证。使用以下命令生成:
```
ssh-keygen -t rsa
```
这将在当前用户的`.ssh`目录中生成`id_rsa.pub`和`id_rsa`文件,分别是公钥和私钥。
2. 将生成的公钥复制到目标服务器上的`authorized_keys`文件中,该文件位于目标服务器用户的`.ssh`目录中。
```
ssh-copy-id username@server_ip
```
这将将公钥复制到远程服务器上,将密码登录改为公钥登录。
3. 编写脚本文件,创建一个`login.sh`的文件,并添加以下内容:
```shell
#!/bin/bash
# 设置远程主机IP地址和用户名
remote_host="server_ip"
remote_username="username"
# 执行ssh命令进行免密登录
ssh -o PasswordAuthentication=no $remote_username@$remote_host
```
4. 保存脚本文件并赋予执行权限。
```
chmod +x login.sh
```
5. 运行脚本文件,在终端中输入以下命令:
```
./login.sh
```
这将使用生成的私钥进行免密登录,并将你连接到目标服务器上。
通过以上方式编写的脚本实现了Linux免密登录,节省了输入密码的步骤,方便快捷。但请注意,为了安全起见,生成的私钥文件需要妥善保管。
### 回答3:
编写一个Linux免密登录脚本,可以通过SSH在远程服务器上自动登录。
首先,我们需要在本地生成SSH公钥和私钥。可使用以下命令生成:
ssh-keygen -t rsa
接下来,根据提示设置密钥的保存路径和密码等信息。
然后,将公钥复制到远程服务器的~/.ssh/authorized_keys文件中,可以使用以下命令:
ssh-copy-id username@remote_server
这将自动将公钥复制到远程服务器,并且免去了密码登录的步骤。需要注意的是,你可能需要输入远程服务器的密码进行授权。
接下来,可以编写一个自动登录脚本,将以下内容保存为一个脚本文件,比如login.sh:
#!/bin/bash
ssh username@remote_server
将username和remote_server替换为你的实际用户名和远程服务器的IP地址或域名。
保存并退出后,通过以下命令使脚本文件具有可执行权限:
chmod +x login.sh
现在,你可以通过运行该脚本来实现自动登录到远程服务器,无需输入密码。
请注意,这是一个示例脚本,并且仅适用于用户名和IP地址已知的情况。在实际应用中,可能需要添加更多的安全措施和验证步骤来确保安全性。
阅读全文