ssh 输入密码一行

ssh 输入密码一行

我想通过 ssh 执行一个命令,但是我的服务器正在使用密码,我只想创建一行而不询问密码。

~# ssh -t root@dev5 'echo "tes" ; bash'
Enter passphrase for key '/home/sed22/.ssh/id_rsa':

感谢帮助。

答案1

但我的服务器正在使用密码

不是。您的密钥已加密,因此您的客户端正在请求密码短语,以便可以解密。

不要试图从密钥中删除加密 - 这是一件坏事

而是使用 ssh-agent 或 pageant (windows) 在会话期间将密钥 (安全地) 存储在内存中。具体如何操作取决于您的客户端操作系统。

如果你尝试自动化某个过程,那么你可能必须使用未加密的密钥,但你应该采取特别的预防措施来限制密钥的用途一个例子

答案2

您可以使用 从密钥中删除密码ssh-keygen -p。这是名为 FOO 的密钥的开头,如您所见,它是使用密码加密的:

[me@risby .ssh]$ head -5 FOO
-----BEGIN RSA PRIVATE KEY----- 
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,DCF8CD9222D62A42D0BFE4FC284BD6BB

f2hDtfkOeUC0Gw0MhQzSvPSj+6XtYX+Y7XMZ7m8BuAz4mg2G/M99LmXlmGW/7AUj

我们删除密码短语(return在提示输入新密码时输入):

[me@risby .ssh]$ ssh-keygen -p -f FOO
Enter old passphrase: 
Enter new passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved with the new passphrase.

密钥现在已解密:

[me@risby .ssh]$ head -2 FOO
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA2mfFcvjEuIsyZbhdp4U9Hn7XxFr5naBJEqSMGFdrfL7iX38C

相关内容