我开始在他们的服务器上为一个组织工作。 他们需要允许我的服务器连接,以便通过SSH使用GIT。
他们问我把它放在我的SSH目录中:
SHORTNAME=abcdef FULLNAME=12.34.56.789 PORT=9999 ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa_${SHORTNAME} cat <<EOF >> ~/.ssh/config host ${SHORTNAME} hostname ${FULLNAME} port ${PORT} identityfile ~/.ssh/id_rsa_${SHORTNAME} compression yes protocol 2 ServerAliveInterval 60 EOF ssh ${SHORTNAME} "mkdir -p ~/.ssh" scp -P ${PORT} ~/.ssh/id_rsa_${SHORTNAME}.pub ${FULLNAME}:~/.ssh/id_rsa_${SHORTNAME}.pub ssh ${SHORTNAME} "cat ~/.ssh/id_rsa_${SHORTNAME}.pub >> ~/.ssh/authorized_keys"
我是一个Linux初学者。 我只是想确保在SSH中运行它不会允许他们访问我的服务器。 我们正在尝试实现一个解决scheme,允许我的服务器通过SSH通过GIT连接到服务器,以获得推送和请求。 这是安全的吗? 还是有更好的解决scheme来完成这项任务?
这个脚本…当你的本地系统上运行…将:
.ssh
目录中为您创build一个新的ssh密钥对。 你最终会得到两个文件, id_rsa_abcdef
和id_rsa_abcdef.pub
。 它会在.ssh/config
为你创build一个sshconfiguration文件,内容如下:
host abcdef hostname 12.34.56.789 port 9999 identityfile ~/.ssh/id_rsa_abcdef compression yes protocol 2 ServerAliveInterval 60
例如,这将允许你键入ssh abcdef
,而ssh
将知道使用新创build的密钥对连接到端口9999
上的主机12.34.56.789
,而不必input一堆附加的命令行选项。
它会将你的ssh公钥复制到远程服务器上,这样你就可以使用你的私钥进行authentication。
它不会给任何人访问你的本地机器。
您在这里发布的命令/脚本是安全的,并将创build用于SSH身份validation的密钥对,并将公钥复制到$ {FULLNAME}。 这是一个很好的解决scheme。