在 SSH 进入机器时从文件中获取密码

Mah*_*ati 5 ssh input

我想通过 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 会话。

  • 这并不能准确回答问题恕我直言,他要求输入一个明确存储在 txt 中的密码 (2认同)

Jak*_*uje 8

你可以sshpass用来做到这一点:

sshpass -f password.txt ssh -T user@10.2.5.1
Run Code Online (Sandbox Code Playgroud)