我正在尝试通过 ssh 连接到远程主机 B,但网络访问控制规定我只能通过主机 A 执行此操作。我将如何执行此操作?
已尝试创建到主机 A 的隧道 ssh -f -N -D 2222 user@hostA
然后当从本地创建新的 ssh 连接时指定隧道端口来隧道这些连接,但不能让它工作.. ssh -L 2222:hostB:22 hostA
涉及主机:本地主机A(本地内网)主机B(内网)
流量:Local > HostA > HostB
任何指针都将是超级手……提前致谢!
我有一个配置.ssh/authorized_keys了单个permitopen选项的工作密钥。我去添加了一个额外的permitopen,它不允许到新服务器的隧道。该文件说:
多个 PermitOpen 选项可以应用于同一个公钥,如果它们用逗号分隔,因此一个密钥可以允许多个端口。
但是,文档没有显示任何示例。有人可以提供一个工作示例吗?我已经尝试了以下两种方法:
permitopen="host-1:3389",permitopen="host-2:3389" ssh-rsa AAAAC...
和
permitopen="host-1:3389,host-2:3389" ssh-rsa AAAAC...
我有一台位于防火墙后面的机器。我使用带有端口转发的 VPN 隧道通过 ssh 远程连接到它。为了连接到机器,我使用了 VPN 的外部 IP 以及我个人和临时分配的端口。我使用的命令是:
ssh USER@VPN_IP -p PORT
Run Code Online (Sandbox Code Playgroud)
由于VPN_IP并且PORT经常更改,我无法获得保存主机密钥known_host以摆脱中间人攻击的优势,但同时主机密钥对我来说是众所周知的,我可以按顺序将其提供给 ssh将其用于当前VPN_IP和PORT组合。那可能吗?如何?
我正在使用 SSH 用户名和密码设置运行标准的 ansible (v2.3.1) 剧本。使用“-vvvv”设置时,我可以看到生成了这些 SSH 命令
EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s
-o StrictHostKeyChecking=no -o Port=2222
-o KbdInteractiveAuthentication=no
-o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey
-o PasswordAuthentication=no -o User=dc_user -o ConnectTimeout=10
Run Code Online (Sandbox Code Playgroud)
在上述情况下,从何处提取“PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey”设置。我相信这些来自客户端 SSH 配置设置,但这是正确的吗?
我知道我可以通过在我的“ansaible.cfg”中定义它来覆盖 ssh 参数
[ssh_connection]
scp_if_ssh=True
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey
Run Code Online (Sandbox Code Playgroud)
谁可以给我解释一下这个?谢谢
我有 Linux 服务器运行sshd。
如何hostkey从 Linux 服务器提供到plink.exeWindows 上?
例如:跑步 plink.exe -ssh -batch -m plink.tmp -hostkey ...
为什么密码会过期?
几天以来,我一直在使用公钥(无密码)登录。今天我收到这条消息:
> ssh modlink_foo_q@server
You are required to change your password immediately (password expired)
Last login: Wed Nov 14 09:26:48 2018 from 10.130.4.3
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for modlink_foo_q.
Run Code Online (Sandbox Code Playgroud)
这是 /etc/shadow 中的匹配行
server:~ # grep modli /etc/shadow
modlink_foo_q:!:17757:1:90:7:::
Run Code Online (Sandbox Code Playgroud)
我认为没有设置密码。那么谁可以过期呢?
操作系统:SUSE Linux Enterprise Server 12 SP3
我正在使用腻子连接到我的 Ubuntu 16.04 VPS。
我决定将默认 SSH 端口从 22 更改为 443。我这样做是更改了线路
Port 22
Run Code Online (Sandbox Code Playgroud)
在 /etc/ssh/sshd_config
到 Port 443
现在,当我尝试使用端口 443 连接到服务器时,我收到错误消息“服务器意外关闭网络连接”
当我尝试使用端口 22 连接到服务器时,我收到错误消息“网络错误:连接被拒绝”
服务器已启动并正在运行,我只是无法再连接到它了,有没有办法解决这个问题?
编辑:我重新安装了 VPS 并再次重新配置。可能导致此问题的可能问题是我使用相同的端口使用 Putty 连接到我的 VPS,并在鱿鱼中为我的代理使用相同的端口。
我希望能够在 2 个单独的文件中指定密钥,一个是用户控制的,另一个是由工具自动生成的。
我怎样才能做到这样一个文件~/.ssh/authorized_keys_generated也能在登录时检查密钥?
我有一堆 ssh 密钥半永久性地加载到 ssh-agent 中。ssh-add -L列出 6 个键。
我还有其他单独存储的密钥;比方说,在 USB 记忆棒上。我正好不希望妥善保管所有的时间。让我给其中之一打电话square.key。
问题是:在我需要的时候square.key,我可以插入 USB 记忆棒并指定-i /path/to/square.key— 但它不起作用。-v揭示了原因:
debug1: Will attempt key: /home/ulidtko/.ssh/key1 RSA SHA256:<redacted> agent
debug1: Will attempt key: /home/ulidtko/.ssh/key2 RSA SHA256:<redacted> agent
debug1: Will attempt key: key3@localhost ED25519 SHA256:<redacted> agent
debug1: Will attempt key: key4@localhost RSA SHA256:<redacted> agent
debug1: Will attempt key: key5@localhost ed25519 ED25519 SHA256:<redacted> agent
debug1: Will attempt key: key6@localhost ECDSA SHA256:<redacted> agent
debug1: …Run Code Online (Sandbox Code Playgroud) 我最近使用 Raspbian 系统映像设置了一些无头 Raspberry Pi 系统。他们默认使用 zeroconf 域名raspberrypi.local。在我更改它之前,我必须使用 SSH 连接到新服务器,它总是对我咆哮:
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> @ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Run Code Online (Sandbox Code Playgroud)
并且在我打开 known_hosts 文件并删除上一个条目之前不会连接。然后当它连接时,它会自动添加一个新条目,raspberrypi.local以便下次搞砸。
我理解并欣赏检查密钥并自动添加新密钥的逻辑,但我认为对于这种特定情况,它没有意义。我永远不会连接到被调用的服务器,raspberrypi.local除非它是我刚刚插入的新服务器,在这种情况下,它永远不会有已知的可信赖密钥。
我可以从known_hosts 规范中看到我可以在地址端设置一个通配符(即接受这个范围内的任何地址的这个密钥)但是我想要做的是在密钥端设置一个通配符(接受来自这个的任何键)特定域名)。或者更好的是,根本不要检查这个域名的密钥。
有什么方法可以告诉 known_hosts 忽略(通过而不检查密钥)单个特定域名?