写一个sh脚本实现 ssh登录 输入密码
时间: 2024-05-14 14:17:08 浏览: 6
好的,下面是一个简单的sh脚本,用于通过ssh登录目标主机并输入密码:
```
#!/bin/bash
# 指定目标主机的IP地址或域名
HOST="your_host_ip_or_domain"
# 指定目标主机的SSH端口,如果是默认端口22则不需要修改
PORT="22"
# 指定目标主机的用户名
USER="your_username"
# 指定目标主机的登录密码
PASSWORD="your_password"
# 执行ssh登录命令并输入密码
sshpass -p "${PASSWORD}" ssh -p "${PORT}" "${USER}@${HOST}"
```
请注意,为了能够在脚本中输入密码,需要安装sshpass工具。如果你在Ubuntu系统上,可以使用以下命令安装sshpass:
```
sudo apt-get install sshpass
```
如果你在其他Linux发行版上,则需要使用相应的包管理器安装sshpass。
相关问题
写一个sh脚本实现ssh反向代理
好的,以下是一个简单的sh脚本实现ssh反向代理:
```
#!/bin/bash
# 设置本地监听端口和远程服务器IP及端口
LOCAL_PORT=8080
REMOTE_SERVER_IP=xxx.xxx.xxx.xxx
REMOTE_SERVER_PORT=22
# 启动ssh反向代理
ssh -N -R ${REMOTE_SERVER_PORT}:localhost:${LOCAL_PORT} ${REMOTE_SERVER_IP}
```
在上面的脚本中,我们首先定义了本地监听的端口号和远程服务器的IP地址和端口号。然后我们使用ssh命令启动一个反向代理连接,将远程服务器的${REMOTE_SERVER_PORT}端口映射到本地的${LOCAL_PORT}端口。
这样,当有人连接到远程服务器的${REMOTE_SERVER_PORT}端口时,实际上会被转发到本地的${LOCAL_PORT}端口。这种技术可以用于实现远程访问本地服务、穿透防火墙等场景。
帮我写一个ssh免密登录脚本
好的,以下是一个基本的 SSH 免密登录脚本,你可以根据自己的需求进行修改:
```
#!/bin/bash
# 将本地公钥拷贝到远程主机,实现 ssh 免密登录
# 使用方法: ./ssh-login.sh user@hostname
# 生成本地公钥,如果已经存在则直接跳过
if [ ! -f ~/.ssh/id_rsa.pub ]; then
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
fi
# 将公钥复制到远程主机的 authorized_keys 文件中
cat ~/.ssh/id_rsa.pub | ssh $1 '[ -d ~/.ssh ] || mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys'
echo "免密登录设置完成"
```
在使用该脚本时,只需运行 `./ssh-login.sh user@hostname`,其中 `user` 和 `hostname` 分别为远程主机的用户名和主机名即可。脚本会在本地生成一对密钥,并将本地公钥上传到远程主机的 `~/.ssh/authorized_keys` 文件中,从而实现 SSH 免密登录。