答:实际上是在执行反向 DNS 解析。根据下面的建议和本文,我在 sshd_config 中添加了“UseDNS no”,重新启动了 ssh,现在立即显示密码提示。
当我通过 SSH 连接到我的服务器时,我会看到标准的“登录身份:”提示,然后是“用户@主机的密码:”提示。无论出于何种原因,第二个总是需要一段时间才能显示。我的服务器没有任何负载,通常执行命令的速度非常快。
现在,在我按 Enter 输入用户名和第二个提示显示之间,我们只讨论了 10 秒左右的时间,但是当你经常这样做时,它会变得很烦人。我怀疑 Ubuntu 正在查找我的用户帐户,但在整个安装过程中它有 < 5 个帐户。
更新 @Josh /var/log/messages确实包含这个 gem:
Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: Called
Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: username = [msmith]
Oct 28 16:54:59 Athena sudo: Warning: Using default salt value (undefined in ~/.ecryptfsrc)
Oct 28 16:55:01 Athena sudo: Passphrase key already in keyring; rc = [1]
Oct 28 16:55:02 Athena sudo: Passphrase key already in keyring; …Run Code Online (Sandbox Code Playgroud) 我创建了一个公钥/私钥对:
ssh-keygen -t rsa -C "me@example.com"
Run Code Online (Sandbox Code Playgroud)
我给了一个与 id_rsa 不同的密钥文件名,因为我想从我的正常身份创建一个新的单独密钥。
我将此密钥提供给了我的托管服务提供商,以便我可以使用公钥身份验证登录到我的服务器。
我最初能够使用密钥登录并且一切正常。
ssh -i /path/to/key/file user@server.com
Run Code Online (Sandbox Code Playgroud)
我意识到我在密钥文件名中犯了一个拼写错误并重命名了公钥和私钥文件。如果密钥文件在我的客户端计算机上具有不同的名称,这是否会影响服务器端的任何内容?
升级到 Fedora 23 后,无密码(基于公钥)身份验证在 SSH 中不再有效:当尝试通过 SSH 连接到某个主机时,它会提示我在远程主机上输入密码。我无法让它使用我的 SSH 私钥。Fedora 22 一切正常。
我的公钥是 DSA 密钥 ( ~/.ssh/id_dsa.pub)。我正在使用 OpenSSH 7.1 ( openssh-7.1p1-5.fc23.x86_64)。
如何让无密码身份验证再次正常工作?
我已经尝试~/.ssh/config在本指南的帮助下设置我的文件。但是,特定于主机的用户覆盖无效并且 ssh 尝试使用全局用户名而不是特定于主机的用户名进行连接。我的 ssh 配置是这样设置的:
$ cat ~/.ssh/config
User my_global_username
Host dev1
HostName 10.40.10.41
User my_username_on_dev_machines
Run Code Online (Sandbox Code Playgroud)
我也试过将全局用户名放在一个Host *条目下无济于事。我正在运行的 OpenSSH 版本和构建是OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013
`.
我已经生成了一个密钥对ssh-keygen。我现在想对基于 PuTTY 的应用程序使用相同的密钥对。
因为我在 CLI 环境中工作,所以我想将密钥转换.ppk为该环境中的格式。
显然,您可以puttygen openssh_private_key -o output_filename.ppk在类 UNIX 环境中使用。但是 Windows 版本puttygen只会加载密钥并提示您使用 GUI 导出密钥。
Windows PuTTYgen 的批处理模式表明目前这根本不可能,至少对于puttygen. 我很乐意接受并选择使用其他方式。
如何从命令行转换密钥?
我有一台 linux 计算机充当服务器,它可以接受传入的 SSH 连接。
是否可以使用 SSH 将多个设备(例如我的手机和笔记本电脑以及其他台式机)同时可靠地连接到同一台服务器?
谢谢您的帮助。
最近 macOS Sierra 上的 OpenSSH 升级到 7.3p1 ,这意味着Includeconfig 指令可用,欢呼吧!
但是我在实际使用它时遇到了问题。
我有以下几点~/.ssh/config:
Host github.com
Hostname github.com
User git
IdentityFile ~/.ssh/keys/github_rsa
Host den
HostName narzt-desktop.local
User camden
GSSAPIAuthentication no
AddressFamily inet
Host walle
User CamdenNarzt
HostName WALLE.local
AddressFamily inet
GSSAPIAuthentication no
Include ~/.ssh/config.d/*
Run Code Online (Sandbox Code Playgroud)
我在这里看到,如果我-v在 ssh 命令中添加了一堆标志,可能会有一些有用的调试输出,但是当我在其中一个包含的文件中测试主机的配置时,我得到了这个:
$ \ssh -vvvvG git-codecommit.us-east-1.amazonaws.com
OpenSSH_7.3p1, LibreSSL 2.4.1
debug1: Reading configuration data /Users/camdennarzt/.ssh/config
debug3: /Users/camdennarzt/.ssh/config line 31: Including file /Users/camdennarzt/.ssh/config.d/family.conf depth 0 (parse only)
debug1: Reading configuration data …Run Code Online (Sandbox Code Playgroud) 当我ssh在不同的电脑之间时,我可以省略我的用户名 ( tom) 并只输入
ssh pc_name
Run Code Online (Sandbox Code Playgroud)
代替
ssh tom@pc_name
Run Code Online (Sandbox Code Playgroud)
我喜欢这个功能,并养成了使用它的习惯。
不幸的是,在我的其中一台计算机上,我选择了用户名tommy。每次我连接到这台计算机时,我都会忘记写,tommy@creative_pc并想知道为什么我的密码不起作用。有没有办法告诉 ssh 在省略用户名时使用什么用户名?
编辑:刚刚发现以下类似的问题:How to make ssh login as the right user? 它没有出现在我最初的搜索中。
我在 Windows 7 上安装了 Cygwin。我进行了默认安装。我想使用 ssh 配置文件 (~/.ssh/config) 来设置主机和连接选项。
当我尝试连接时,普通的 ssh 命令无法找到配置:ssh host 如果我明确指定配置文件,一切正常:ssh -F ~/.ssh/config
我找不到任何设置 ssh 客户端的选项,例如 /etc/ssh
也许 ssh 不知道我的主文件夹在哪里?(我已将 HOME 环境变量设置为我的主文件夹)
当我第一次使用公钥/私钥通过 SSH 连接到机器时,如何跳过“known_host”问题?