我想通过 SSH 连接到远程机器,但不想输入密码,而是想从另一个文件重定向它。
所以我有一个password.txt
存储密码的文件。File.sh
是我的 bash 文件。
在 File.sh
#!/bin/bash
ssh -T user@10.2.5.1
Run Code Online (Sandbox Code Playgroud)
在执行文件时,我做了:
./File.sh < password.txt
Run Code Online (Sandbox Code Playgroud)
但我还是被要求输入密码。
如何从文件中获取要输入的密码?
Lam*_*ert 16
带有“文件中的密码”的 SSH 通常用作公钥身份验证。使用 创建一个密钥对ssh-keygen
,将公钥上传到另一台主机:
scp ./.ssh/id_rsa.pub user@10.2.5.1:~/
Run Code Online (Sandbox Code Playgroud)
并将其放置为~/.ssh/authorized_keys
:
ssh user@10.2.5.1
mkdir ~/.ssh
mv ~/id_rsa.pub ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
或者,如果authorized_keys
文件已经存在:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
设置适当的权限(文件为 600,目录为 700):
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
Run Code Online (Sandbox Code Playgroud)
并开始一个新的 ssh 会话。
你可以sshpass
用来做到这一点:
sshpass -f password.txt ssh -T user@10.2.5.1
Run Code Online (Sandbox Code Playgroud)