我试图设置一个简单的备份脚本来自动运行,它可以通过 SSH 将文件从 Windows 机器复制到 Linux 机器。
正如许多简单的在线教程所建议的那样,我使用pscp
了生成的私钥puttygen
,并将相应的公钥(由 putty 本身以复制/粘贴形式呈现)放置authorized_keys
在 Linux的文件中。考虑到它可以在其他 2 台 Windows 机器和具有相同配置的不同 Linux 机器上工作,这似乎非常简单。
考虑到我能够以 root 身份登录到 Linux 机器,AFAICS 没有连接问题,ssh 也是如此。配置文件 ( sshd_config
)AuthorizedKeysFile
设置为~/.sshd/authorized_keys
.
错误“服务器拒绝了我们的密钥”不断出现,无论我做什么......日志没有显示任何身份验证问题......
我打算做更多的测试并将logLevel
值设置为VERBOSE
or DEBUG2
,3
但考虑到问题的紧迫性以及为了在机器上实际测试它我必须经历很多麻烦考虑到机器处于离我实际工作地点很远的地方......
看起来这实际上可能是与 ssh 版本或类似问题有关的问题...
我还考虑了我需要将公钥插入authorized_keys
到用户.ssh
目录 ( /user/.ssh/
)内的文件中的可能性,除了将它放在 root 的文件夹中(因为AuthorizedKeysFile
in的值没有多大意义sshd_config
)。
我已经对 ssh 服务器的LogLevel
set o进行了一些测试,VERBOSE
但我无法检索信息(责任问题),所以这里改为来自另一个来源的输出/调试日志,该日志似乎显示相同的错误...
Connection from 192.168.0.101 port 4288 …
Run Code Online (Sandbox Code Playgroud) ssh putty key-authentication puttygen public-key-authentication
我用 CentOS 6.5 设置了一个新系统。我复制了我的公钥:
ssh-copy-id root@192.168.1.202
Run Code Online (Sandbox Code Playgroud)
显示密码提示花了 15 秒多的时间,但随后它被复制了。
但是ssh
到 root@192.168.1.202 仍然要求输入密码。目录的权限.ssh
是700
和 文件.ssh/authorized_keys
600
(所有者和组)root
。这与运行 Debian 的服务器上的公钥登录工作相同。
没有明显的东西sshd_config
我可以看到需要改变。
如何自动化公钥登录?如果这是固定的,这是否有助于加快登录速度?
我在远程计算机上安装了 Ubuntu LTS 14.04 服务器版,并在远程计算机上添加了我的本地公钥~/.ssh/authorized_keys
。我发现我还是需要使用密码登录远程计算机,即使在远程计算机上设置~/.ssh
为700和~/.ssh/*
600的权限后。但是,一旦我登录,我就可以开始使用公钥对其他 ssh 会话进行授权。
我的主目录是加密的。
我怎样才能解决这个问题?
我正在尝试使用公钥身份验证通过 SSH 连接到我的 ubuntu 服务器。由于某些原因,我收到“权限被拒绝(公钥)”。在客户端,每当我执行
ssh -i ~/.ssh/id_rsa <username>@<ip> -p <port>
.
我服务器上的 auth.log 有以下输出:
sshd[1425]: Connection closed by <client-ip> [preauth]
但是,一旦我使用相同的用户名在我的服务器上实际登录,来自我的客户端的以下 ssh 连接就会成功。但是,一旦我以物理方式注销,来自客户端的下一个 ssh 会话就会失败。
/etc/ssh/sshd_config
# What ports, IPs and protocols we listen for
Port <port>
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# …
Run Code Online (Sandbox Code Playgroud) 我设置了我的密钥,这样我就可以在机器之间进行 ssh,而无需输入密码,一切都正常工作了一段时间,但突然间,我在某些机器上被提示输入密码。我验证了密钥 - 一切似乎都没问题。我运行了 ssh -v,这是输出。据我所知,密钥验证成功,为什么要我输入密码???
ssh XXX.XXX.XXX.XXX -v
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to XXX.XXX.XXX.XXX [XXX.XXX.XXX.XXX] port 22.
debug1: Connection established.
debug1: identity file /nethome/username/.ssh/identity type -1
debug1: identity file /nethome/username/.ssh/id_rsa type 1
debug1: identity file /nethome/username/.ssh/id_dsa type 2
debug1: loaded 3 keys
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local …
Run Code Online (Sandbox Code Playgroud) 在我的服务器上,我在~/.ssh/authorized_keys
.
我想暂时阻止/禁止/停用一键。我想阻止用户现在使用此密钥登录。但我可能想稍后重新启用它(即我不想完全删除密钥)。
正确/推荐的方法是什么?
我要不要#
在行的开头在authorized_keys
, 键前面加一个注释?
澄清一下,我不想阻止特定用户。一个用户帐户在几个人之间共享,每个人都使用自己的 SSH 密钥进行连接。我想阻止一个特定的 SSH 密钥。
我在 Ubuntu 机器上有以下设置:
~/dotfiles/authorized_keys2
~/.ssh/authorized_keys2 -> /home/wayne/dotfiles/authorized_keys2
Run Code Online (Sandbox Code Playgroud)
我在我的 Arch 机器上有相同的设置,但是当我用 -v 连接时,
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/wayne/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
Run Code Online (Sandbox Code Playgroud)
我在 Arch Wiki 上找到了这个页面,里面有这样一行:
$ chmod 600 ~/.ssh/authorized_keys
所以我添加了另一个符号链接:
authorized_keys -> /home/wayne/dotfiles/authorized_keys2
然而,仍然没有骰子。是的,我已经确保正确的密钥存在于authorized_keys
.
为什么我不能使用我的密钥连接?
编辑:
我的home 和 ssh 文件夹(和密钥文件)上的权限设置正确:
drwxr-x--x 150 wayne family 13k Aug 27 07:38 wayne/
drwx------ 2 wayne family 4.1k Aug 27 07:24 .ssh/ …
Run Code Online (Sandbox Code Playgroud) 简短的问题:
我有一个任务来更新 git 存储库。我收到的信息如下:主机、端口、用户名和 ssh 密钥的密码短语,其中包含密钥类型为 rsa 的信息。如何将 PC 配置为不使用密码进行连接?是否有足够的信息来做到这一点?
细节:
~/.ssh/
以任何方式对其进行配置。长话短说/我是如何尝试解决这个问题的:
ssh-keygen -t rsa
输入密码生成了 ssh 密钥。然而,每次我生成一个密钥时,它都是不同的,这让我想到另一个(子)问题:是否有可能只知道密码短语来获得 ssh-rsa 密钥?换句话说,我收到的信息太少了吗?(问题是我对 ssh 和密码学的了解太少,我无法在 Google 上找到这个附加问题的答案;我不知道 - 也找不到信息 - 密钥是否基于密码(就像在散列的情况下)或者它是附加信息还是次要信息(例如在带有盐的散列或类似于使用 TrueCrypt 加密的情况下,它仅使用密码加密标头,并且整个磁盘使用存储在标头中的密钥加密)。~/.ssh/config
文件,但为了确认问题出在密钥内,我将其备份、清除,现在我将密钥生成到~/.ssh/id_rsa
.ssh-keygen -t rsa
而是通过另一种方式生成它),但是我找不到任何东西。附加信息