脚本添加地址 免密实现SSH 登陆
时间: 2023-12-06 16:02:13 浏览: 43
以下是一个综合性的脚本示例,实现SSH免密登录和添加地址的功能:
```bash
#!/bin/bash
# 服务器IP地址
server_ip="192.168.1.100"
# 本地SSH公钥文件路径
local_key="$HOME/.ssh/id_rsa.pub"
# 远程SSH目录
remote_dir=".ssh"
# 远程SSH授权文件
remote_auth_file="$remote_dir/authorized_keys"
# 生成SSH公钥和私钥
if [ ! -f "$local_key" ]; then
ssh-keygen
fi
# 复制公钥到服务器并添加地址到known_hosts文件中
ssh-copy-id -i "$local_key" "user@$server_ip"
ssh-keyscan "$server_ip" >> ~/.ssh/known_hosts
# 测试免密登录
ssh "user@$server_ip"
```
该脚本首先设置了服务器的IP地址,本地SSH公钥文件路径,远程SSH目录和授权文件的路径等参数。然后使用`ssh-keygen`命令生成本地机器的SSH公钥和私钥,如果公钥文件已经存在则跳过该步骤。
接着,使用`ssh-copy-id`命令将本地机器的公钥复制到服务器上,并使用`ssh-keyscan`命令将服务器的IP地址添加到本地机器的`known_hosts`文件中,以避免登录时出现警告信息。
最后,使用`ssh`命令测试免密登录。如果一切正常,脚本将自动登录服务器。
相关问题
windows免密登陆ssh的bat脚本
Windows系统中使用SSH(Secure Shell)进行免密登录通常需要借助第三方工具,如PuTTY、Pageant等。这里我将为你提供一个基本的批处理脚本示例,假设你已经安装了PuTTY,并且使用了Pageant作为SSH密钥对管理器:
```batch
@echo off
set SSH_DIR=C:\path\to\your\pageant.exe %~dp0 # 设置Pageant的位置和当前脚本的目录
set PASS_FILE=C:\path\to\your\private_key.pem # 设置私钥文件路径
REM 启动Pageant并加载私钥
start "" %SSH_DIR% %PASS_FILE%
REM 使用PuTTY连接到远程服务器,替换"username"和"hostname"为实际值
timeout /t 10
putty -load "SSH_NAME" -ssh username@hostname
pause
```
在这个脚本中:
- `@echo off` 关闭命令行回显,使得脚本执行更整洁。
- `set SSH_DIR` 和 `set PASS_FILE` 分别设置Pageant的路径和私钥文件路径。
- `start "" %SSH_DIR% %PASS_FILE%` 启动Pageant并自动加载私钥,`""` 参数表示无标题栏。
- `timeout /t 10` 延迟10秒,给Pageant足够时间加载密钥。
- `putty -load "SSH_NAME" -ssh username@hostname` 使用PuTTY连接到服务器,`SSH_NAME` 是你在PuTTY配置中为这个服务器设置的名称。
注意:
1. 你需要将`SSH_DIR`、`PASS_FILE`、`username`和`hostname`替换为实际的路径和用户名/主机名。
2. 在PuTTY中,需要为SSH配置一个会话(Session),并将其保存为一个名字(如"SSH_NAME"`),以便在此脚本中调用。
3. 执行此脚本前,确保PuTTY和Pageant已添加到系统的PATH环境变量中,或者提供完整的路径。
怎样写SSH免密 添加地址 登录脚本
要实现SSH免密登录,需要进行以下步骤:
1. 在本地机器上生成SSH公钥和私钥:可以使用命令`ssh-keygen`来生成,一般情况下直接按回车即可。
2. 将公钥复制到需要免密登录的服务器上:可以使用`ssh-copy-id`命令,格式为`ssh-copy-id user@server_ip`,其中`user`是服务器上的用户名,`server_ip`是服务器的IP地址。
3. 测试免密登录:使用`ssh user@server_ip`命令来测试是否可以免密登录。
4. 添加地址:可以将需要免密登录的服务器的IP地址添加到本地机器的`known_hosts`文件中,这样可以避免登录时出现警告信息。可以使用`ssh-keyscan`命令,格式为`ssh-keyscan server_ip >> ~/.ssh/known_hosts`,其中`server_ip`是需要添加的服务器的IP地址。
5. 编写登录脚本:可以将登录命令放入一个脚本中,以便快速登录。例如,在本地机器上创建一个`ssh_login.sh`文件,内容为`ssh user@server_ip`,然后使用`chmod +x ssh_login.sh`命令将其变为可执行文件,即可在终端中执行该脚本以快速登录服务器。
注意事项:
1. 公钥和私钥文件的权限应该设置为600或更高,以保证安全性。
2. 如果需要登录多个服务器,可以重复以上步骤,将公钥复制到每个服务器上。
3. 如果登录的服务器需要密码,则无法使用免密登录。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)