我的服务器上有 Debian、Fisheye 和 Git。我的 git 存储库由 Fisheye 管理。鱼眼部分没有认证。所有的认证过程都由 git 管理。
我想使用 SSH 身份验证,以便在将更改推送到服务器时不需要提供用户名和密码。我知道如何创建 rsa 密钥,但是在服务器上哪里复制我的公钥?
我的服务器上有 Debian、Fisheye 和 Git。我的 git 存储库由 Fisheye 管理。鱼眼部分没有认证。所有的认证过程都由 git 管理。
我想使用 SSH 身份验证,以便在将更改推送到服务器时不需要提供用户名和密码。我知道如何创建 rsa 密钥,但是在服务器上哪里复制我的公钥?
《服务器上的 Git - 设置服务器》一文的关键部分是:
您需要将一些开发人员 SSH 公钥添加到该
~/.ssh/authorized_keys
用户的文件中。
假设您通过电子邮件收到了一些密钥并将它们保存到临时文件中。同样,公钥看起来像这样:
$ cat /tmp/id_rsa.john.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L
ojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4k
Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez
Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv
O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq
dAv8JggJICUvax2T9va5 gsg-keypair
(注意:确保键显示在一行中)
您只需将它们附加到您的 authorized_keys 文件中:
$ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
如果您的服务器上没有authorized_keys
文件,请创建它,但请确保正确保护它。
server$ mkdir ~/.ssh
server$ chmod 700 ~/.ssh
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
server$ chmod 600 ~/.ssh/authorized_keys
server$ rm ~/id_rsa.pub
有关具体示例,请参阅“为 Gerrit 和 Hudson 创建 SSH 密钥”。
~/.ssh
都不可写入组(chmod 755
仅)。您需要将您的公钥粘贴到~/.ssh/authorized_keys
. 如果文件不存在,则创建该文件。