问题标签 [ssh-config]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ssh - 合并 ssh 配置
有没有办法将 ssh 配置文件合并到一个会话中?
如
进入
我试过了,但得到了这个错误:
ssh:无法解析主机名 192.168.1.1?:提供节点名或服务名,或未知
假设我有 9 个节点。我不想重复那些会议。
ssh - 如何动态更改 SSH 配置文件中的主机?
我正在尝试连接到 GCP 实例,该实例每次重新启动时都会更改其公共 IP。要动态获取 IP,我使用以下gcloud
命令:
然后我有这个ssh config
文件:
它指向vm-connect
具有以下内容的脚本
如果我只运行脚本,它会成功连接到 VM。但是如果我运行ssh MyHost
它会给我:
macos - SSH 控制主设置
我正在使用 ssh Control Master 设置连接到远程机器并使用ControlPersist 16h
和ControlPath ~/.ssh/master-%C
选项。它似乎工作正常。但是当我的 Mac 进入睡眠状态时,它会删除上面创建的套接字。然后我在登录到这台远程机器时被迫再次输入密码。任何建议,如何解决这个问题?
password-less - 在 .ssh/config 中捕获登录失败并在处理一些异常后重试
我可以登录远程系统,但无法使用正常id_rsa.pub
机制禁止密码登录。相反,他们提供了一个身份验证脚本,为无密码登录分配一个限时证书。
我想做的是向我添加某种规则来~/.ssh/config
禁止密码登录,然后在登录失败时调用此身份验证脚本。然后在认证后重新尝试无密码登录。
我认为部分解决方案是抑制密码查询
并以某种方式测试登录是否可以工作,也许类似于
我不确定要填写这些字段的内容,但会尝试一些试验和错误。
stty - 从 ~/.ssh/config 调用的脚本丢失 TTY
我正在使用一个特定于站点的身份验证脚本,该脚本为无密码登录颁发 24 小时证书。如果证书已过期,我想要做的是装配我的~/.ssh/config
所以触发脚本:ssh
这几乎可以工作 - 它测试最新证书文件的年龄,并调用authentication_script
它是否已过期。问题是该脚本使用 TTYread
操作来获取密码输入,并给出以下错误:
当我从常规登录会话在命令行上运行脚本时,不会发生这种情况。是否有某种模式可以翻转以使其正常工作?
ssh - 有没有办法在指定“主机名”时使用先前指定的 ssh-config 条目?
编辑:我已经看到了可行的情况和不可行的情况,我不确定我何时/为什么这样做。
假设我有一个足够复杂的条目,我在其中指定了多个参数来获取thathost
:
我想通过添加或覆盖某些配置来重新使用此定义来创建提供不同功能的其他条目。专门指定一个备用端口(不,我不想在命令行上使用它)。
理想情况下,我可以做类似的事情
或者
或者
我严格地希望根据另一个现有的主机来指定一个主机,我不想修改我的Host
条目以匹配一些模式“技巧”。
显然,我可以使用ProxyCommand ssh -q nc thathost...
or ProxyJump thathost
+Hostname localhost
后跟所有其他覆盖(端口覆盖将传递给nc
),但这既丑陋又浪费(额外的会话) - 请不要回答这个问题。
对我来说,这一直是的缺失功能,ssh-config
但也许我看起来不够努力。
centos - 由于 sshd 配置错误,SSH 登录无法在 centos 上运行
我试图在 Centos 服务器上配置 SFTP。我编辑了 /etc/ssh/sshd_config 文件并重新启动了服务。Chroot 行出现错误。一段时间后与服务器的连接断开,从那时起,没有人能够登录到服务器。显然,无法将 sshd 配置更正为无法登录服务器。
我有根详细信息。Plesk 被配置到服务器以管理域。仍然不能做很多事情。
以下是尝试 ssh 登录时的错误日志:
linux - 在 .ssh/config 中测试操作系统
我有一个远程服务器,身份验证需要很长时间。因此,我想保持连接打开ControlMaster
。但是,ControlMaster
不适用于Windows。我想在.ssh/config
Windows 和 Linux 上使用相同的,我经常复制它们。
因此,我只想在 Linux 上激活它。我可以使用 sshsMatch
配置来做到这一点:
这在 Linux(ControlMaster 处于活动状态)和 Windows(ControlMaster 处于非活动状态)上都按预期工作。但是在 Windows 上会打印:
(命令“test”错误或未找到)
我能做些什么来忽略这些消息?是否有独立于操作系统的方法来检查操作系统?还有其他 ssh-config 选项吗?
linux - SSH 配置 - 从 Unix、Linux 和 Windows 中的 %h 令牌中提取子字符串
我有两个不同的环境(生产和开发),它们都包含一个具有相同本地 DNS 记录的框,即:foo.example.com
.
我想在我的 SSH 配置中创建一个类似于以下内容的条目,这样我就可以使用通配符来捕获所有不同的服务名称,并让它神奇地解析为正确的 DNS 记录。(忽略这会对known_hosts
文件有问题的部分,以及缺乏ProxyJump
相关的东西)
这样我就可以做ssh foo.dev
,或者ssh foo.prod
只要这些条目存在本地DNS记录,它就应该可以工作。但是,以这种方式使用%h
它包括来自 的结尾部分Host
,例如,它最终被解析为foo.dev.example.com
而不是foo.example.com
。我更愿意这样做,因此我不需要在 SSH 配置文件中为每个环境中的每个框创建特定条目,而只需要在需要时更新每个环境中的 DNS 记录。
我有一种感觉,Match
关键字是我想要.
在sed
.
我试图跟随手册页,但没有成功。我的 google-foo 让我失望了。
任何帮助将不胜感激!
bash - 从 ~/.ssh/config 打印别名——带或不带尾随连字符
我有以下文件,它是 ssh 的配置文件。
我需要打印以 , 开头的别名vps*
,下面的(复制的)片段将完全做到这一点。
现在我想打印所有没有-old
后缀的别名,添加| grep -v old
作品。
有没有更清洁的方法?最好只涉及 1 个工具,我尝试使用awk
命令无济于事。