web-dev-qa-db-ja.com

git用のSSHエージェントのセットアップ

Ssh(ユーザー名とパスワードでログイン)経由でアクセスするリモートリポジトリへ/からgit Pushまたはgit pullを行うたびにsshパスワードを入力したくありません。

ssh-agent
git config --global credential.helper 'cache --timeout=3600'

動作しません。プッシュ/プルするたびにパスワードを入力する必要があります。

動作させるには他に何をする必要がありますか?

私が実行した場合

ssh-agent bash

その後、同じ端末で2回プッシュしようとしても、パスワードを2回入力する必要があります。

1
UTF-8

ああ、私はsshエージェントの仕事を誤解しました。ユーザー名とパスワードを使用しています。 RAMにのみパスワードを保存できますか?私はそれが私のホームフォルダの中にただ横たわることを望んでいません。 – UTF-8

openssh標準ツールではなし。 SSHエージェントは、使用する前に追加されるキー用です(最初の使用でも追加できるようになりましたが、話は異なります)。

パスワードを渡すことができるようにするには、環境変数からパスワードを読み取ることができるsshpassがありますが、セキュリティの観点からはお勧めできません。セキュリティに関心がある場合は、公開鍵認証を設定します。

1
Jakuje

ssh-agentは環境に変数を提供する必要があるため、適切な使用方法は次のとおりです。

eval $(ssh-agent)  

次に、ssh-addを使用して、エージェントにキーを追加できます。 man ssh-agent;man ssh-addを読んでください。

例(YMMV):

w3@aardvark:~(0)$ env | grep SSH
SSH_AUTH_SOCK=/run/user/1003/keyring-ozv0oa/ssh
w3@aardvark:~(0)$ eval $(ssh-agent)
Agent pid 26624
w3@aardvark:~(0)$ env | grep SSH
SSH_AGENT_PID=26624
SSH_AUTH_SOCK=/tmp/ssh-FUVLa89gGIpt/agent.26623
w3@aardvark:~(0)$ ssh-add -l
The agent has no identities.
w3@aardvark:~(1)$ ssh-add
Enter passphrase for /home/w3/.ssh/id_rsa: 
Identity added: /home/w3/.ssh/id_rsa (/home/w3/.ssh/id_rsa)
w3@aardvark:~(0)$ env | grep SSH
SSH_AGENT_PID=26624
SSH_AUTH_SOCK=/tmp/ssh-FUVLa89gGIpt/agent.26623
w3@aardvark:~(0)$ ssh-add -l
2048 a7:56:f0:86:ab:d3:ec:56:3c:84:05:9e:61:38:a9:7b /home/w3/.ssh/id_rsa (RSA)
w3@aardvark:~(0)$
1
waltinator