cygwin 下的 ssh 配置

cygwin 下的 ssh 配置

我在 Windows 7 上安装了 Cygwin。我进行了默认安装。我想使用 ssh 配置文件 (~/.ssh/config) 来设置主机和连接选项。

当我尝试连接时,普通 ssh 命令无法找到配置:ssh host 如果我明确指定配置文件,则一切正常:ssh -F ~/.ssh/config

我找不到任何设置 ssh 客户端的选项,例如 /etc/ssh

也许 ssh 不知道我的主文件夹在哪里?(我已将 HOME 环境变量设置为我的主文件夹)

答案1

安装openssh包然后运行ssh-host-config。它将在中生成一个“ssh_config”文件/ETC/

答案2

我也遇到了同样的问题。我想使用〜/.ssh /配置因为我已经将该目录用于其他应用程序,并且不想保留 2 个副本。因此创建一个/etc/ssh_config目录不是理想的解决方案。

正如 Fujimoto Youichi 提到的,ssh 会查看密码文件 /etc/passwd为您的主目录,而不是$HOME环境变量。

当前的 cygwin 版本(我使用的是 2.6)不再创建密码文件 /etc/passwd作为安装的一部分。但是,创建一个新的也很容易:

    mkpasswd -c -p "$(cygpath -H)" > /etc/passwd
  • -C将当前用户添加到 passwd 文件中
  • -p“$(cygpath-H)”添加你当前的主目录

https://cygwin.com/cygwin-ug-net/mkpasswd.html有关于可用标志的更多详细信息。

我没有看过代码,但 ssh 的偏好似乎是:

  1. /etc/ssh_config
  2. 〜/.ssh /配置

因此,如果您只想使用来自〜/.ssh /配置,然后一定要删除/etc/ssh_config

此外,请确保在进行更改后打开一个新的 cygwin 终端窗口,以使它们可用。

答案3

ssh 命令从 /etc/passwd 的主目录下查找其配置文件。因此设置 HOME 变量不起作用。

方法有很多,但我们可以通过简单地创建符号链接来解决这个问题,如下所示。

ln -s ~ /home

答案4

其他答案对我不起作用。我刚刚创建了 c:\cygwin64\etc\ssh_config 并粘贴了以下默认/示例文件:

# This is the ssh client system-wide configuration file.  See
# ssh_config(5) for more information.  This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.

# Configuration data is parsed as follows:
#  1. command line options
#  2. user-specific file
#  3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.

# Site-wide defaults for some commonly used options.  For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   Port 22
#   Protocol 2,1
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#
#
Host *
    Port 22

希望这对下一个人有帮助。

相关内容