SSH無パスワード登録remote-hostメソッドまとめ

2901 ワード

プロジェクトで使用しているGitサーバーはSSHベースで、また小さなステップで提出することを提唱して、毎日頻繁にgit pullコードとgit pushコード、毎回remote-hostのパスワードを入力する必要があるのは面倒で、ネット上のやり方を参考にして無パスワードの配置を実験して、具体的なやり方を以下のようにまとめた.
1,local-hostでssh-keygenコマンドを使用してsshの公開鍵と秘密鍵を生成する(パスワードを設定せず、直接Press enter key)

local-user@local-host$ [Note: You are on local-host here]
local-user@local-host$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/local-user/.ssh/id_rsa):[Press enter key]
Enter passphrase (empty for no passphrase):[Press enter key]
Enter same passphrase again:[Press enter key]
Your identification has been saved in /home/local-user/.ssh/id_rsa.
Your public key has been saved in /home/local-user/.ssh/id_rsa.pub.
The key fingerprint is:
d3:2a:75:b4:04:44:4c:27:44:54:89:4b:f4:68:13:32 local-user@local-host
2,生成した公開鍵id_をrsa.pubはremote-host(ログインするサーバ)にコピーして、ssh-copy-idを使うことができます.私はwindows 7オペレーティングシステムを使っています.Cygwinを使っています.ssh-copy-idというコマンドはありません.だから、直接id_rsa.pubファイルの内容をremote-hostの/home/remote-user/.ssh/authorized_にコピーkeysファイルの末尾:

cat /home/local-user/.ssh/id_rsa.pub | ssh remote-user@remote-host 'cat >>  /home/remote-user/.ssh/authorized_keys'
または

ssh-copy-id -i /home/local-user/.ssh/id_rsa.pub remote-user@remote-host
sshのデフォルトポートが22でない場合は、-p remote-portを追加する必要があります.

cat /home/local-user/.ssh/id_rsa.pub | ssh remote-user@remote-server -p remote-port 'cat >>  /home/remote-user/.ssh/authorized_keys'
3,筆者が使用している会社のパソコンに取り付けられたファイアウォールは22ポートを閉鎖しており,ファイアウォールの配置に変更権限がないためgitサーバのsshdに443ポートを追加した(このポートは一般的に閉鎖されないがgitサーバ上の80ポートはhttpサービスを提供している)

sudo vi /etc/ssh/sshd_config
Port 443  #  443  
sudo reload ssh
次のコマンドを使用して、ポートがオープンしているかどうかを確認します.

sudo netstat -nlptu | grep :443
443ポート開通後git repository config fileを修正

git config --local -e
remote.origin.url=ssh://git@remote-host:remote-port/opt/git/project.git
gitエラーgit-upload-pack/git-receive-pack:command not found解決方法:
gitサーバへのログイン

cd /usr/bin
ln -s /wls/devopr/git-ies/bin/git* .
参考:
http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/#more-268
http://hi.baidu.com/thinkinginlamp/blog/item/e74ab051102c5f12367abef6.html