有人可以告诉我,使用SSH,为什么主机还需要有公钥和私钥?以及如何为自己生成公钥/私钥对?
我有这个线程中描述的完全相同的问题,但是那里接受的答案对我来说不是正确的,因为用户的主目录是本地的。
我认为我在客户端(Windows 7、PuTTY 的 PAGEANT、PUTTYGEN 和 PLINK)正确配置了所有内容,但我似乎没有使公钥机制起作用(基于密码的 ssh 登录有效)。我遵循了以下所有步骤、提示和提示:
我现在怀疑我可能在服务器端(Linux、sshd)上遗漏了一些东西,所以我发布了当前/etc/ssh/sshd_config内容:
Protocol 2
SyslogFacility AUTHPRIV
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
Subsystem sftp /usr/libexec/openssh/sftp-server
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
/home/winwin> /usr/sbin/sshd -d
debug1: sshd version OpenSSH_4.2p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA …Run Code Online (Sandbox Code Playgroud) 允许任何人查看您的 SSH 公钥是否存在安全风险?
我的公钥在我经常登录的所有机器上,我还给其他系统管理员我的 .pub 文件,以便他们允许我根据需要访问他们的服务器。
但是:向全世界发布我的公共SSH 密钥有多安全?在各种 github 存储库、dotfiles 等中列出了很多,我也在考虑做同样的事情。我是一名系统管理员,而且很偏执(但我再说一遍......),所以希望得到一些澄清。
在我的 Synology NAS 上,我无法进行 SSH 密钥验证。我已经尝试了所有常用的东西(添加到authorized_keys,编辑sshd 配置,...),但仍然无法让它工作。
我真的很希望能够使用 SCP 对我的 NAS 进行无交互传输。
此外,与我交谈过的另一位 IT 朋友说他不久前就开始使用它了,但这是一个很大的痛苦并且不记得是如何工作的。
有没有人得到这个工作?
我的情况: - 我通过(使用我的私钥和密码)从我的 PC (Windows 7) 连接到服务器 A userA- 我想通过命令 ssh: 从 A 连接到服务器 B ssh userB@serverName,但是我收到“权限被拒绝”。
对于每台服务器,我的密钥都存在于文件夹中ssh\authorized_keys。甚至,如果我可以直接从我的 PC 连接到服务器 B,并且如果我尝试从服务器 A 连接,我会收到此错误。
使用 Linux 的人成功地使用命令ssh -A连接到服务器 B。我相信 PuTTY 选项“代理转发”是等效的,但..不,仍然是相同的错误。
ssh当我尝试从服务器 A 连接到服务器 B 时,从登录:
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 serverB port 22.
debug1: Connection established.
debug1: identity file /home/userA/.ssh/identity type -1
debug1: identity file /home/userA/.ssh/id_rsa type …Run Code Online (Sandbox Code Playgroud) 我更新了Cygwin,我无法再通过 SSH 连接到任何远程机器。
这是来自 SSH 的相关调试输出;怎么了?
debug1: Server host key: ssh-rsa SHA256:VTUSWVnLWQ6ohJ0hZ7vcswPKnuBsXSqtqH054jWxMAA
debug1: Host 'xxx.yyy.zz' is known and matches the RSA host key.
debug1: Found key in /home/nifle/.ssh/known_hosts:5
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/nifle/.ssh/id_rsa
debug1: Skipping ssh-dss key /home/nifle/.ssh/id_dsa for not in PubkeyAcceptedKeyTypes
debug1: No more authentication …Run Code Online (Sandbox Code Playgroud) 在 docker 中,18.09+我们可以使用以下方法在构建镜像时使用转发的 ssh 密钥:
# syntax=docker/dockerfile:experimental
# example file
FROM node:10.15.3-alpine
RUN apk update && apk add openssh-client git
# use the forwarded ssh key
RUN --mount=type=ssh git clone <repo>
Run Code Online (Sandbox Code Playgroud)
然后我们将像这样构建图像:
DOCKER_BUILDKIT=1 docker build --ssh default .
Run Code Online (Sandbox Code Playgroud)
我想用docker-compose它来实现这一点,但它似乎不起作用。--sshdocker-compose 命令没有标志,我看不到可以在docker-compose.yml文件中设置的任何内容来完成此操作。
[MacOS 10.12.6 主机,Ubuntu 14.04 LTS 来宾]
我有一个本地 VM 设置,只接受公钥身份验证。到目前为止,我一直在使用需要输入密码的密钥,而且这种安排工作正常。但是,我现在需要设置一个脚本来自动为我执行 scp。
由于我既不想让脚本暂停以提供密码,也expect不想自动执行此操作,因此我决定使用没有密码的第二个密钥。
在我看来,ssh-copy-id它无法处理这种情况,因为它使用-i参数来告诉它上传哪个密钥,因此我无法指定使用哪个密钥登录。
所以,我的问题是,如何首先ssh-copy-id接受用于登录的第二个密钥?我应该使用ssh-add吗?
(根据我上面的问题ssh-copy-id,我手动复制了密钥并将其添加到我的 authorized_keys 文件中。)
我正在阅读问题Tell git which private key to use,答案不适用于用户没有任何主目录的情况。
我们现在正在设置 Jenkins 服务器,运行 Jenkins 的用户没有任何主文件夹。但该特定用户必须访问 GIT 存储库。
运行 GIT 的用户如何使用密钥认证?