我正在尝试在 Ubuntu 服务器上设置无密码 SSH ssh-copy-id myuser@myserver,但出现错误:
警告:“myserver”的 ECDSA 主机密钥与 IP 地址“192.168.1.123”的密钥不同
这是什么原因造成的,我该如何解决?我尝试删除.ssh远程机器上的目录,并在ssh-keygen -R "myserver"本地运行,但这并不能解决错误。
我知道可以在 Windows 中的 puttygen 下转换 .ppk,但如何在 Linux 上进行转换?这可能吗 ?
我在 Unfuddle 上有一个个人帐户和一个公司帐户。在 Unfuddle 上,SSH 密钥只能用于一个帐户,因此我需要在我的笔记本电脑上为两个帐户创建一个单独的 SSH 密钥。我跑去ssh-keygen -t rsa生成两个不同名称的密钥(个人是默认名称,公司是 {company}_rsa)。现在的问题是,我的默认密钥似乎无处不在,我无法找到如何在 Git 中为单个存储库指定要使用的密钥。
所以我的问题是:如何指定要在 repo-to-repo 基础上使用的 SSH 密钥?
我设置了我的 ssh_config (~/.ssh/config) 但它似乎仍然不起作用。
配置:
Host {personalaccount}.unfuddle.com
HostName {personalaccount}.unfuddle.com
User git
IdentityFile /Users/dave/.ssh/id_rsa
Host {companyaccount}.unfuddle.com
HostName {companyaccount}.unfuddle.com
User git
IdentityFile /Users/dave/.ssh/cage_rsa
Run Code Online (Sandbox Code Playgroud)
我的公司 unfuddle 帐户上的仓库的 Git 仓库配置文件如下所示:
[remote "origin"]
url = git@{companyaccount}.unfuddle.com:{companyaccount}/overall.git
fetch = +refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)
所以我不确定我的 ssh 配置或我的 git 配置是否有问题。
我最近才开始使用 SSH 密钥而不是密码(当然要感谢 GitHub),所以请记住,我对整个概念还很陌生。目前我的密钥只是在 ~/.ssh 下,但我不确定这是否是一个好习惯。例如,如果我有多台机器,我需要复制我的私钥,我认为这是不可取的。或者,如果我的 HDD 出现故障,那么我将丢失那些密钥,这(我猜)也是不可取的。
那么,安全、方便、可靠地存储 SSH 密钥的最佳实践是什么?
似乎使用智能卡是一种选择(请参阅用于存储 gpg/ssh 密钥的智能卡 (Linux) - 我需要什么?),这是最好的吗?
更新:问题的原因是许多服务(如 GitHub、AWS EC2)提供了有关如何设置 SSH 密钥以使用该服务的指南,但几乎没有背景知识(例如,如果您已经生成了密钥该怎么办)通过ssh-keygen[1],推荐的安全措施是什么)。并且不清楚该信息实际上是否不重要,或者您应该“默认”知道它。
总结到目前为止的答案(但请阅读它们,如果您有要添加的内容,请添加):似乎在这种情况下,如果您将私钥留在 ~/.ssh 中就可以了,只要您让他们远离他人;但请确保您有另一种方式来访问该服务以上传或生成新密钥(如果您丢失了密钥)(通常是这种情况)。
[1] GitHub 用于提供有关如何管理多个密钥的帮助。
我正在使用 git bash 并使用 ssh-keygen 设置 ssh 密钥,每次我用 repo git 做某事时都会问我/c/Users/jankiewj/.ssh/id_rsa. 有没有办法禁用该密码。
编辑: 我编辑了原始标题(删除了 Windows),因为我刚刚在我的工作笔记本电脑上使用了全新安装的 Ubuntu,当 ssh 密钥有密码时,它总是要求它,解决这个问题的解决方案是一样的。这可能在同样是 Unix 的 MacOSX 上工作相同,并使用相同的基本工具。
我正在尝试通过 ssh 连接到我无法控制的 CentOS 服务器。
.ssh 中的配置:
tim@tim-UX31A:~$ cat ~/.ssh/config
User root
PasswordAuthentication no
IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
我的密钥文件的权限:
tim@tim-UX31A:~$ ls -l ~/.ssh/id_rsa*
-rw------- 1 tim tim 3326 Okt 20 17:28 /home/tim/.ssh/id_rsa
-rw-r--r-- 1 tim tim 746 Okt 20 17:28 /home/tim/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
我无法理解的连接日志:
tim@tim-UX31A:~$ ssh -vvv root@10.0.12.28
OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /home/tim/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "10.0.12.28" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting …Run Code Online (Sandbox Code Playgroud) 我想生成一个只有READ权限的 SSH 密钥,可以与我的 GitHub 帐户一起使用吗?还是应该创建另一个只有读取权限的帐户?
为什么0644ie-rw-r--r--对 SSH 密钥来说太开放了?此外,我在.ssh目录 ( 0700) 或主目录 ( 0731)上找不到任何错误的权限。
顺便说一句,我在通过以下方式测试密钥的释义时收到此错误 ssh-keygen -y -f my_key.pub
此致
是否可以在 Windows 机器上生成 SSH 密钥,然后使用该密钥通过 FileZilla 使用 SFTP 连接到服务器?
这一切都适用于我的 Mac,但我的客户端卡在 Windows 环境中。我们的服务器没有传统的 FTP 访问权限,我需要让他连接。
细节将不胜感激。
我正在尝试为朋友设置第二个访问 ssh 密钥。他给我发了他的 id_rsa.pub。
ssh-copy-id -i id_rsa.pub root@123.123.123.123
/usr/local/bin/ssh-copy-id: ERROR: failed to open ID file './id_rsa': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我需要他把两个文件都发给我吗?