标签:公钥认证 rem shel 终端 node 启动 ica tps scp
如何在Linux 和Unix 类系统(如 macOS 或 FreeBSD 桌面)上使用 ssh-agent 命令进行非交互式身份验证?我的私钥是用口令或密码保护的。所以我需要输入口令才能多次使用ssh私钥进行验证。我怎样才能让ssh只询问一次口令?$ eval $(ssh-agent)
$ eval `ssh-agent`
您将在屏幕上看到ssh-agent的PID,如下所示:Agent pid 97280
2、使用ssh-add将私钥口令添加到ssh-agent中。
现在我们的ssh-agent正在运行,你需要提供ssh私钥的密码。例如,运行ssh-add命令:
$ ssh-add
输入密码:
Enter passphrase for /home/vivek/.ssh/id_ed25519:
Identity added: /home/vivek/.ssh/id_ed25519 (vivek@nixcraft)
默认情况下,它添加了~/.ssh/id_rsa、~/.ssh/id_dsa、~/.ssh/id_ecdsa、~/.ssh/id_ecdsa_sk、~/.ssh/id_ed25519和~/.ssh/id_ed25519_sk等文件。
但是,我们声明另一个私钥文件如下:
$ ssh-add ~/.ssh/aws-web-servers
3、设置身份/私钥的最大使用期限
传递-t life到ssh-add命令,以便在向代理添加身份时设定最大存在时间。存在时间可以以秒为单位或以sshd_config文件中指定的时间格式来指定:
$ ssh-add -t 1800 # 1800 seconds
$ ssh-add -t 45m # 45 minutes
$ ssh-add -t 3h42 # 3 hours 42 minutes
记住,你可以配置GNOME/KDE 或 macOS桌面来运行 ssh-agent,并在登录时自动解锁密钥。例如
4、使用ssh-agent来进行ssh/sftp/scp命令认证:
一旦你把私钥(或密钥)添加到ssh-agent中,你所要做的就是使用ssh、sftp、scp和所有其他ssh命令。例如,我将为我的 FreeBSD 备份服务器执行 ssh 命令:
$ ssh user@server
$ ssh user@hostname_or_ip
$ scp file.doc vivek@server1.cyberciti.biz:~/Documents/
# State the private key for public key authentication #
$ ssh -i ~/.ssh/aws-web-servers ec2-user@rhel8-web-server
$ ssh -i ~/.ssh/linode-nixcraft-servers vivek@1.2.3.4
$ ssh vivek@192.168.2.236
在我的Ubuntu Linux桌面上运行的用于非交互式ssh身份验证的ssh-agent
请注意,当您退出shell或关闭启动ssh-agent的终端会话时,密码将从系统内存中删除。
5、如何列出我的ssh-agent缓存的私钥
运行以下命令以列出所有身份/私钥的缓存:
$ ssh-add -l
输出:
256 SHA256:uym82 ..... 6VLU vivek @ nixcraft(ED25519)
2048 SHA256:GVs ... S0AA root @ backup-servers(RSA)
3072 SHA256:VLg8 ... SCDFp本地lxds的密钥(RSA)
要查看列出所有身份的所有公钥参数:
$ ssh-add -L
6、删除所有缓存的ssh-agent私钥
使用-D选项传递给ssh-add命令:
$ ssh-add -D
屏幕上将显示以下确认信息:
All identities removed.
即删除所有身份。
A5互联https://www.a5idc.net/
如何在Linux/Unix上使用ssh-agent进行身份验证
标签:公钥认证 rem shel 终端 node 启动 ica tps scp
原文地址:https://blog.51cto.com/14414732/2529997