我有一个脚本可以动态创建 Amazon EC2 实例并将它们的 ssh 密钥添加到我的 ~/.ssh/known_hosts。但是,每当我需要通过终止和重新创建来刷新实例时,我都会收到令人讨厌的警告消息,例如:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
<fingerprint>.
Please contact your system administrator.
Add correct host key in ~/.ssh/known_hosts to get rid of this message.
Offending ECDSA …Run Code Online (Sandbox Code Playgroud) 我在服务器(主机)中有一个公钥,我想将其传输到另一台服务器(目标)。
该主机服务器有一串钥匙中的.ssh/文件夹,我想只是其中之一复制到目标服务器(它不是id_rsa.pub,所以让通话mykey.rsa.pub)。
此外,目标服务器在 中具有主机服务器密钥(让我们调用hostkey.rsa.pub).ssh/authorized_keys,用于无密码 ssh。
有可能做这样的事情吗?
ssh-copy-id mykey.rsa.pub -i hostkey.rsa.pub user@target
我有一个用于宠物项目的 AWS EC2 Ubuntu 实例。当我有一天尝试登录时,出现此错误:
~$ ssh -i"/home/kona/.ssh/aws_kona_id" kona@server.akona.me -p22
Enter passphrase for key '/home/kona/.ssh/aws_kona_id':
Received disconnect from [IP address] port 22:2: Too many authentication failures
Disconnected from [IP address] port 22
~$
Run Code Online (Sandbox Code Playgroud)
kona 是此服务器上启用的唯一帐户
我试过重新启动服务器,更改我的 IP 地址,然后等待。
编辑:
kona@arcticjieer:~$ ssh -o "IdentitiesOnly yes" -i"/home/kona/.ssh/aws_kona_id" -v kona@ec2-3-17-146-113.us-east-2.compute.amazonaws.com -p22
OpenSSH_8.1p1 Debian-1, OpenSSL 1.1.1d 10 Sep 2019
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to ec2-3-17-146-113.us-east-2.compute.amazonaws.com [3.17.146.113] port 22.
debug1: Connection established.
debug1: identity …Run Code Online (Sandbox Code Playgroud) 我最近在 IDS 日志中看到了一个奇怪的东西。这是一个传出连接的报告,将父进程显示为/usr/sbin/sshd -R.
我知道的-R参数ssh(客户端)进行远程端口转发,但从来没有见过一个-R选项来sshd 守护。
中没有-R出现man sshd。这个论点有什么作用?
我如何验证sshd?
例如,我想确保设置并应用这些设置:
AllowUsers user1 user2
PasswordAuthentication no
PermitRootLogin no
Run Code Online (Sandbox Code Playgroud)
是手动验证文件内容的唯一方法sshd_config,还是我可以探测sshd以确保?
我一直在尝试使用 plink 发出命令以从我的外部服务器检索信息。请注意,这些 plink 命令是从不需要用户输入的二进制文件中运行的。是否有一个标志可以让我覆盖此错误消息并继续程序输出?
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this …Run Code Online (Sandbox Code Playgroud) ================================================== ==================
更新:原来 sshd 的配置host2不允许密码登录。感谢人们回答这个问题。
================================================== ==================
场景:为我的大学项目与一家公司合作。我需要先使用 PuTTy SSH 进入host1,然后从那里 SSH 进入host2(见下文)。我在 host2 上获得了用户名和密码。
我根本无法访问 host2,所以我不知道它的sshd_config.
这是当我试图使用SSH连接发生了什么host2从host1:
ff@host1:~$ ssh -v host2
OpenSSH_5.1p1 Debian-5, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /home/ff/.ssh/config
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to host2 [192.*.*.*] port 22.
debug1: Connection established.
debug1: identity file /home/ff/.ssh/identity type -1
debug1: identity file …Run Code Online (Sandbox Code Playgroud) 根据我的ssh_config档案...
配置数据解析如下:
- 命令行选项
- 用户特定文件
- 系统范围的文件
话虽如此,(是的,我知道,我可以搜索man ssh_configANDman ssh和(希望)记录的默认值)。我如何“打印”所有当前设置的活动配置。例如,像...
ssh -o Tunnel=ethernet servername -p 2210 --print-config
SSH-2.0-OpenSSH_7.0
Command Line Options
Port 2210
Host servername
Command Line Configurations
Tunnel Ethernet
Config File
...
SSH Defaults
...
AddressFamily any (???)
BatchMode no
...
Run Code Online (Sandbox Code Playgroud)
这会让你明确地知道设置了什么,以及为什么。我AddressFamily特别指出,因为它是没有记录默认值的配置选项的完美示例。从man ssh_config...
指定连接时要使用的地址系列。有效参数为
any,inet(仅使用 IPv4)或inet6(仅使用 IPv6)。
啊! 感谢您的任何建设性建议(不仅仅是一堆RTFM's)。
我现在使用 msysgit 是因为 GUI 工具使用 Putty 的 Pageant 和 PLink 实用程序,但我使用 Cygwin 作为通用 SSH 终端。我一直在 Cygwin 上使用 ssh-agent,但这意味着我必须为两个 SSH 密钥管理器输入我的 SSH 密钥密码。是否可以将我所有的 Unix 端口工具(msys、git、cygwin、Ruby Net:SSH 等)配置为使用 PLink/Pageant 而不是 ssh-agent?似乎这就是 PLink 的用途,但我找不到有关如何操作的文档。
我们有许多不同的系统,由几个人管理。我们选择使用 SSH 公钥认证来访问这些系统。这很好用,因为不需要管理或共享管理帐户密码,不需要记住各种系统的密码(只有私钥的密码),不需要与每个远程命令交互(输入密码) .
问题是,安装在系统上的公钥需要以某种方式进行管理。人们来来去去,钥匙可能会被泄露,责任会发生变化(今天被授权进入一个系统的人明天可能被授权访问另一个系统)。目前我们通过手动编辑每个需要它的帐户上的 ~/.ssh/authorized_keys 文件来管理它,但这是很多工作并且容易出错。
在这种情况下,有没有现成的工具来管理公钥?您有自己的解决方案吗?或者,以这种方式管理系统的整个想法是否有缺陷?