SSHを介してネットワーク(静的イーサネット)上の複数のコンピューター間で通信したい。これを行うには、特定のマシンにログインするたびにssh-addを実行する必要があります。一度設定すると、ログインするたびにパスフレーズを要求されないようにするにはどうすればよいですか。またはマシンを再起動しますか?
bash_profile
ファイルにいくつかの行を追加する方法があることは知っていますが、それでも毎回パスワードを入力する必要があります特定のマシンを再起動/ログインする時間。
if [ -z "$SSH_AUTH_SOCK" ] ; then eval `ssh-agent -s` ssh-add fi
コメント
- この質問と同様 stackoverflow.com/questions/18880024/start-ssh-agent-on-login
- stackoverflow.com/a/52671286/217408 は、bitwardenからパスフレーズを渡すことで解決しました
- @steampowered yes-しかし、ここで与えられた一番の答えはより良いと思います。この質問に適した場所
回答
これは、セキュリティ間のトレードオフの典型的な例です。と便利。幸いなことに、いくつかのオプションがあります。最も適切な解決策は、使用シナリオと必要なセキュリティレベルによって異なります。
ssh-key with passphrase、no ssh-agent
これで、認証にキーを使用するたびにパスフレーズを入力する必要があります。これはセキュリティの観点からは最良のオプションですが、使いやすさは最悪です。これにより、弱いパスフレーズが順番に選択される可能性もあります。これにより、パスフレーズを繰り返し入力する負担が軽減されます。
ssh-key with passphrase、with ssh-agent
~/.bash_profile
に以下を追加すると自動的に開始されますssh-agent
ログイン時にssh-keyをロードします:
if [ -z "$SSH_AUTH_SOCK" ] ; then eval `ssh-agent -s` ssh-add fi
これで、パスフレーズを毎回入力する必要がありますログインする。使いやすさの観点からは少し優れていますが、ログインセッション中にキーを使用するかどうかに関係なく、ssh-agent
がパスフレーズの入力を求めるという欠点があります。新しいログインごとに、個別のssh-agent
インスタンスも生成されます。このインスタンスは、明示的に強制終了されない限り、ログアウト後もメモリ内に追加されたキーで実行されたままになります。
ssh_agent
、~/.bash_logout
if [ -n "$SSH_AUTH_SOCK" ] ; then eval `/usr/bin/ssh-agent -k` fi
に以下を追加するか、 ~/.bash_profile
trap "test -n "$SSH_AUTH_SOCK" && eval `/usr/bin/ssh-agent -k`" 0
複数のssh-agent
インスタンスの作成は Collin Andersonの回答など、ファイルシステムの固定された場所にエージェントへの永続的な通信ソケットを作成します。これは、複数のエージェントを生成するよりも改善されています。ただし、インスタンスは、明示的に強制終了されない限り、ログアウト後もメモリに残ります。
デスクトップでは、 Gnome Keyring SSH Agent は、通常、パスのプロンプトを表示するように作成できるため、より適切なアプローチになります。ログインセッション中にssh-keyを初めて使用するときのフレーズで、復号化された秘密鍵をセッションが終了するまでメモリに保存します。
ssh-パスフレーズ付きのキー、 ssh-ident
ssh-ident
は、ユーザーに代わってssh-agent
を管理し、必要に応じてIDを読み込むことができるユーティリティです。 ssh-agent
へのアクセスを必要とする端末、ssh、またはログインセッションの数に関係なく、必要に応じて1回だけキーを追加します。また、接続先のホスト、またはsshの呼び出し元に応じて、異なるエージェントと異なるキーのセットを追加して使用することもできます。これにより、異なるホストでエージェント転送を使用するときにキーを分離できます。また、GitHubなどのサイトで複数のアカウントを使用することもできます。
ssh-ident
を有効にするには、アカウントをインストールして、次のエイリアスを:
alias ssh="/path/to/ssh-ident"
パスフレーズ付きのsshキー、 keychain
keychain
は、ユーザーに代わってssh-agent
を管理し、ログインセッションの終了時にssh-agent
を実行し続けることができる小さなユーティリティです。以降のログインで、keychain
は既存のssh-agent
インスタンスに接続します。実際には、これは、再起動後の最初のログイン時にのみパスフレーズを入力する必要があることを意味します。以降のログインでは、既存のssh-agent
インスタンスの暗号化されていないキーが使用されます。これは、パスワードなしのsshキーを使用せずにcron
ジョブでパスワードなしのRSA / DSA認証を許可する場合にも役立ちます。
keychain
をインストールし、次のようなものを~/.bash_profile
に追加します。
eval `keychain --agents ssh --eval id_rsa`
のセキュリティポイントからビュー、ssh-ident
およびkeychain
は、特定の存続期間に制限されたssh-agent
インスタンスよりも劣っていますセッションですが、高いレベルの利便性を提供します。 keychain
のセキュリティを向上させるために、--clear
オプションを~/.bash_profile
キーチェーンに追加する人もいます。呼び出し。これを行うことにより、上記のようにログイン時にパスフレーズを再入力する必要がありますが、cron
ジョブは、ユーザーがログアウトした後も暗号化されていないキーにアクセスできます。 keychain
wikiページには詳細と例があります。
パスフレーズなしのssh-key
セキュリティの観点から、秘密鍵は完全に保護されていないため、これは最悪のオプションです。露出しています。ただし、これは、再起動後にパスフレーズを再入力する必要がないことを確認する唯一の方法です。
ssh-key with passphrase、with ssh-agent
、パスフレーズを ssh-add
スクリプトから
スクリプトからパスフレーズをssh-add
に渡すのは簡単なアイデアのようです。 echo "passphrase\n" | ssh-add
、これはssh-add
が読み取らないように見えるほど単純ではありませんstdin
からのパスフレーズですが、/dev/tty
を直接開いて読み取ります。
これはインタラクティブを自動化するためのツールである expect
を使用して回避しましたアプリケーション。以下は、スクリプトに保存されているパスフレーズを使用してssh-keyを追加するスクリプトの例です。
#!/usr/bin/expect -f spawn ssh-add /home/user/.ssh/id_rsa expect "Enter passphrase for /home/user/.ssh/id_rsa:" send "passphrase\n"; expect "Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)" interact
パスフレーズはプレーンテキストで保存されているため、スクリプトは、セキュリティの観点から、パスワードなしのssh-keyを使用するよりも優れているとは言えません。このアプローチを使用する場合は、パスフレーズを含むexpect
スクリプトに適切な権限が設定されていることを確認し、キーによってのみ読み取り、書き込み、実行できるようにすることが重要です。所有者。
コメント
- わかりました。ただし、コードを〜/ .bash_profileに配置すると、ログインするたびにパスワードを入力する必要があります。 ‘どちらも必要ありません。セキュリティについては全く気になりません。 echo “パス\ n ” | ssh-addは’機能しません
- @ user1607072そうです、
ssh-agent
スニペットは~/.bash_profile
は回答で説明されているように動作します。keychain
ユーティリティを確認することをお勧めします。keychain
では、再起動後の最初のログイン時にパスワードを入力する必要がありますが、それ以降のログインでは、keychain
は既存のssh-agent
インスタンス。それとは別に、’パスフレーズなしでssh-keyを生成するオプションがありますが、これはもちろんお勧めできません。 - @ user1607072より安全なアプローチの1つを提案します。スクリプトから、パスフレーズを
ssh-add
に渡す方法があります。echo "pass\n" | ssh-add
が機能しない理由は、ssh-add
がstdin
からパスワードを読み取らないためです。ただし、読み取り用に/dev/tty
を直接開きます。expect
というユーティリティを使用して、この回避策を含めるように回答を更新しました。 - @ user1607072ユースケースでは少しやり過ぎかもしれませんが、 Kerberos をssh GSSAPI サポートと組み合わせて、パスワードなしのsshログインにも使用できます。 sshの対応する認証方法は、
gssapi-with-mic
と呼ばれます。これは通常、大規模なネットワークで使用されますが、もちろん、これに興味がある場合は、調べる価値があるかもしれません。 - @ErickBrown:すでに回答済みここ。 systemdログインマネージャーでユーザーが長引くことを無効にしている場合は、SSHエージェントユニットをログアウト時に停止する必要があります。ユーザーの長引くことが有効になっている場合、systemdユーザーインスタンスとSSHエージェントユニットは、最後のログインセッションが閉じられた後も実行され続けます。
回答
これを~/.bashrc
に追加して、ログアウトします
if [ ! -S ~/.ssh/ssh_auth_sock ]; then eval `ssh-agent` ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock fi export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock ssh-add -l > /dev/null || ssh-add
これは、パスワードの入力のみを要求する必要があります。再起動するたびに初めてログインするとき。実行されている限り、同じssh-agent
を再利用し続けます。
コメント
- 非常にきれいです、この方法では、実行しているssh-agentは1つだけです(:@thomasNyman ‘の2番目のソリューションのように複数のエージェントは私にはセキュリティリスクのようです…
- さまざまなサイトで調査し、さまざまな解決策を読んだ後、これは最も明確で、要点を明確にしているようです。とてもいいです。+ 1
- これを行う方が良いです: `alias ssh = ssh-check-agent “で、check-agentバージョンに上記を実行させます。その方法:a)エージェントを1つだけ取得し、b)必要な場合にのみエージェントを取得します
- -sがデフォルトだと思うので、’すでにそれを行っています。
-
ssh-add
引数なしで~/.ssh/id_rsa
を追加します。秘密鍵が別のファイルにある場合は、ssh-add
引数を渡すことをお勧めします。
回答
OPの質問とは密接に関連していませんが、他の人には役立つかもしれません。7.2.0以降、ssh(1)には、最初の認証時にssh-agentにキーを追加できるオプションがあります。オプションはAddKeysToAgent
で、yes
、no
、ask
またはconfirm
、システム全体または個人の.ssh/config
ファイル。
参照: https://www.openssh.com/txt/release-7.2
コメント
-
.ssh/config
ファイルを初めて使用する場合:これは、ssh
およびその背後にあります(例:scp
)。ホストごとに実行できます。 - パスワードの入力を求められますたとえば、ログインしてgitpullを試行するたびに。
- @trainosis問題は、復号化されたキーを将来使用するためにメモリに保持するためのssh-agentインスタンスが実行されていない可能性があることです。 ssh-agentを使用する場合は、ログインセッションごとに1回だけ特定のキーのパスワードを入力する必要があります。
回答
ssh-agent
は、ロック解除されたさまざまなsshキーをキャッシュするため、パスワードでsshキーを保護できますが、毎回入力する必要はありません。
ロック解除されたキーをキャッシュするには、明らかにそれらのキーのロックを解除する必要があります。パスフレーズでロックされているキーのロックを解除するには、明らかにこれらのパスフレーズを知っている必要があります。
人間からの承認を必要としない方法(「パスワードの入力」など)は、システムが安全ではありません。また、ssh-agentの目的全体が無意味になります。
以上のことをすべて述べた上で、パスワードで保護されていないsshキーを使用できます(要求されたら Enter を押してください)。キー生成中のパスワード用)。パスワードがないため、ssh-agent
はパスワードをキャッシュする(しない)ためにパスワードを要求する必要はありません。
コメント
- キーが適切にユーザーのみに許可されている限り、許可のないキーよりもssh-agentに利点はほとんどありません。ログインサーバーにSSHで接続するのが好きです。そのサーバーには、許可のないキーがたくさんあり、それぞれを使用して他の1つのサーバーのロックを解除することしかできません。ログインサーバーは他に何もしないので、’ハッキング/スプーフィングなどがはるかに困難です…他のサーバーはパスワードにアクセスできず、キーのみです。
回答
SSHパスフレーズを自動化するための回避策は次のとおりです。
-
パスフレーズを標準出力に出力するワンライナースクリプトを作成します。例:
echo "echo MY_SSH_PASSWORD" > ~/.print_ssh_password && chmod 700 ~/.print_ssh_password
重要:先頭のスペースを履歴にパスワードを保存しないようにコピーします。
次のいずれかの方法を使用します。
-
標準の入力アプローチを使用します:
cat ~/.ssh/id_rsa | SSH_ASKPASS=~/.print_ssh_password ssh-add -
-
または名前付きパイプアプローチ:
-
mkfifo --mode 0600 ~/.ssh_fifo
-
ssh-add
認証に使用するプログラムを指定する:cat ~/.ssh/id_rsa >~/.ssh_fifo | SSH_ASKPASS=~/.print_ssh_password ssh-add ~/.ssh_fifo
参照:
man ssh-add
で、SSH_ASKPASS
の詳細をご覧ください。 -
コメント
-
echo my_passphrase
は大きなセキュリティホールです。最初に入力した後、パスワードは、使用するシェルの履歴ファイルにクリアテキストで表示されます。また、2番目のコマンドライン引数はUnixで誰でも読み取り可能です(ps -ef
)。 コマンドライン引数にパスワードを入力しないでください! - @ceving先頭にスペースを追加すると、履歴ファイルの問題が解決します。追加情報を追加しました。
- @kenorb:’
ps
に表示されるパスワードの大きな問題は解決されません。出力。履歴ファイルは通常、所有しているユーザーのみが読み取ることができますが、コマンドラインはシステム上のすべてのユーザーが読み取ることができます。
回答
ログイン時にssh-add(ssh-agentを開く必要がある)はお勧めしません。これは、ssh-agentセクションがいつ終了するかを制御できず、セキュリティリスクが発生する可能性があるためです。 1つのログインセクションでキーファイルを使用する必要がない場合。
むしろ、すべてのキーファイルが自動追加されたssh-agentのセクションサブシェルを開き、次のときに呼び出されるスクリプトを作成することをお勧めします。 sshを使用する必要があります。採用できる場合は、読み進めてください。
2つの選択肢があります。
-
キーのパスフレーズをすべて削除します。キーファイルが盗まれた場合のセキュリティが弱い(したがって、推奨されません)
-
キーに同じパスフレーズを使用します。その後、
ssh-add keyfile1 keyfile2 ...
を入力すると、セクションごとに1回だけパスフレーズを入力する必要があります。/li>
どちらの場合も、次のようなスクリプトファイル「ssh_keys_section.sh」を記述できます。
#!/bin/bash # This script run a ssh-agent on a sub-shell and automatically ssh-add all keyfiles at once. # This agent ends when you type `exit` to close the sub-shell. exec ssh-agent bash -c "ssh-add /path/to/keyfile1 /path/to/keyfile2 ...; exec bash"
備考:
- パスフレーズを変更または削除するコマンド:
ssh-keygen -p -f keyfile
- サブシェル内で、同じものを共有する端末をさらにフォークすることもできます。
/path/to/yourterminal &
(OSによって異なります)
コメント
- などのコマンドを使用して、ロック解除されたキー
- 例: Cygwin内のWindowsでは、
/path/to/yourterminal &
== >mintty &
- 備考:使用後は、ネストされた
bash
またはexit
でセッションを閉じます。 シェルとそれを閉じる必要があります。
回答
if [ ! -S ${HOME}/.ssh/ssh_auth_sock ]; then eval $(ssh-agent) ln -sf "${SSH_AUTH_SOCK}" ${HOME}/.ssh/ssh_auth_sock fi export SSH_AUTH_SOCK=${HOME}/.ssh/ssh_auth_sock ssh_keys=$(find -E ~/.ssh -type f -regex ".*(rsa$|pem)") ssh_agent_keys=$(ssh-add -l | awk "{key=NF-1; print $key}") for k in "${ssh_keys}"; do for l in "${ssh_agent_keys}"; do if [[ ! "${k}" = "${l}" ]]; then ssh-add "${k}" > /dev/null 2>&1 fi done done
回答
以前はsteampoweredで言及されたスクリプトを使用していましたが、ファイルを残さないため、以下のスクリプトを作成しました。横になっています。
zsh
シェルのみで作業しています。
#!/usr/bin/env zsh AGENT_BIN=`which ssh-agent` AGENT_ADD_BIN=`which ssh-add` AGENT_PID=`ps -fe | grep ${AGENT_BIN} | awk -vuser=$USER -vcmd="$AGENT_BIN" "$1==user && $8==cmd{print $2;exit;}"` if [ -z "$AGENT_BIN" ]; then echo "no ssh agent found!"; return fi if [ "" -eq "$AGENT_PID" ]; then if read -sq "YN?Do you want to unlock your ssh keys?"; then echo "" output=`$AGENT_BIN | sed "s/echo/#echo/g"` eval $output $AGENT_ADD_BIN fi else for f in "/proc/"* do cmdline=`cat "$f/cmdline"` if [ "${AGENT_BIN}" -ef "${cmdline}" ]; then export SSH_AUTH_SOCK=`cat $f/net/unix | grep --binary-file=text -oP "((/[^/]*?)+/ssh-[^/]+/agent\.\d+$)"` export SSH_AGENT_PID=${f##*/} break; fi done fi
コメント
- “作業中zshシェルのみ”、わかりましたが、なぜあなたのシバン行は” sh “?
回答
SSH_ENV="$HOME/.ssh/environment" function start_agent { echo "Initialising new SSH agent..." /usr/bin/ssh-agent | sed "s/^echo/#echo/" > "${SSH_ENV}" echo succeeded chmod 600 "${SSH_ENV}" . "${SSH_ENV}" > /dev/null /usr/bin/ssh-add; } # Source SSH settings, if applicable if [ -f "${SSH_ENV}" ]; then . "${SSH_ENV}" > /dev/null #ps ${SSH_AGENT_PID} doesn"t work under cywgin ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { start_agent; } else start_agent; fi
ここでクレジットを付与: https://www.cygwin.com/ml/cygwin/2001-06/msg00537.html
このソリューションはここでも承認されています: http://mah.everybody.org/docs/ssh
回答
パスワードマネージャーとしてseahorseを実行している場合 …おそらくあなたは; D
探している目標を達成する別の解決策は、ログイン時に自動的にロックを解除するためにsshキーをseahorseに追加することです。 。これの主な利点は、gdmを介してログインした後、またはキーにパスワードが付いている場合でもログイン時にキーのパスワードを入力する必要がないことです。これには、秘密鍵と公開鍵の両方が必要です。また、タツノオトシゴの命名規則に従わなければなりません。デフォルトは受け入れ可能です(秘密鍵の場合はid_rsa、公開鍵の場合はid_rsa.pub。。。実際には privatekeyname および privatekeyname.pub )
ログイン時に自動的にロック解除するために、sshキーをseahorseに追加します。 (fedora25では、パスが他のディストリビューションのどこにあるかはわかりませんが、非常に似ている可能性があります)
/lib64/seahorse/seahorse-ssh-askpass /path/to/keys/here
私にとっては、
/lib64/seahorse/seahorse-ssh-askpass ~/.ssh/id_rsa
(私の場合、タツノオトシゴは自動的にid_rsa.pubであると想定します)
コマンドを実行すると、タツノオトシゴはポップオープンします。秘密鍵のパスワードを入力するためのかわいい小さなgtkパスワードフィールド。または、パスワードなしで鍵を生成した場合は空白のままにします。
Seahorseは、すべて問題がない場合はプロンプトを表示しません。ターゲットマシンにSSHで接続する必要があります。次に、タツノオトシゴは、パスワードを使用してキーのロックを解除するようにプロンプトを表示します(これは1回だけ発生します)が、今回は少し異なって見えるはずです; P(これは、タツノオトシゴがsshを実行する部分でもあります-魔法を追加すると思います)、ログイン時にキーのロックを解除するための オプション を提供するには、このオプションをオンにする必要があります。目標を達成してください。
すべての回答を読んでいないという理由だけで、この回答を試みる前に、ssh-addを使用するように指示されたことを元に戻すことをお勧めします。そうしないと、何か悪いことが起こる可能性があります。
回答
SSHのシングルサインオンソリューションは、 pam_ssh
。
この記事によると、コンセプトは次のとおりです。
sshを介して複数の* nixベースのマシンで作業している場合、おそらく短所にうんざりしています。別のボックスにアクセスするたびに、パスワードを入力する必要があります。別のパスワード(最初にサインオンしたパスワード以外)を入力せずに、sshアクセスできるすべてのマシンにアクセスできるようにする安全な方法があります。
これは実際には非常に簡単です。基本的には、公開鍵と秘密鍵のペアを作成して、他のマシンに対して自分自身を認証してから、 PAMは、ログオン後にキーをロードするエージェントを生成し、すべてのリモートマシンにアクセスするためのシングルサインオンソリューションを提供します。このガイドでは、これを設定する手順を説明します。
これが実際に機能することを確認していません。
回答
これを~/.bashrc
ファイルに追加します:
ssh-add -L|grep identities > /dev/null && ssh-add /path/to/ssh/private/key
コメント
- パスワードの入力を求められないという質問とこれがどのように関連しているかわかりません’後続のログイン時。
回答
(パスワードなしの)キーを追加し、ssh-add
は、 X で実行している場合でも、何があってもパスワードの入力を求めません。
DISPLAY= ssh-add -k /path/to/key </dev/null &>/dev/null
終了ステータスは成功または失敗を示します。
回答
これが決定的なものです脚本。
$ PASSWを更新してから、ターミナルにコピーして貼り付けます
# <sshpass> via typinator # Updated: 2017-01-18_21h36 # # apt-get update -y; apt-get install expect -qy # Pass this value to ssh-add PASSW="myfancypass123" # Define a name for this script THIS_SCRIPT="$(date +%Y-%m-%d_%H-%M-%S-%N)".sh # Create a fresh directory to work from / Clean up rm -rf ~/temp; mkdir -p ~/temp; cd ~/temp; ls -la # Output our bash script file - BEGIN cat <<< " #!/bin/bash set -u # Stop if an unbound variable is referenced set -e # Stop on first error export HISTIGNORE="expect*"; # Normal CMDs echo && echo "The process should take about 10 seconds:" && echo eval "$(ssh-agent -s)"; sleep 0.5; # Define VAR passed when this bash-script was launched password="$@" # Launch the expect magic expect -c " spawn ssh-add /root/.ssh/id_rsa expect "?assword:" send \"$password\r\" expect "?password:" send \"$password\r\" expect eof" export HISTIGNORE=""; export password=""; " > $THIS_SCRIPT # Output our bash script file - END # Ensure we are in the right path cd ~/temp; ls -la; sleep 1; # Run the bash script chmod +x ./$THIS_SCRIPT; ./$THIS_SCRIPT "$PASSW"; unset password; # Clean up rm -rf ~/temp; mkdir -p ~/temp; cd ~/temp; ls -la
回答
私が知っている最善の方法は、この質問で満足のいく答えが見つからなかったため、前の作業から採用したPAMログインスクリプトを使用することです。
パスフレーズはシステムパスワードと高度な導出関数で暗号化されて保存されます。ログイン時に、システムパスワードを使用してパスフレーズを復号化し、エージェントに追加します。
https://github.com/capocasa/systemd-user-pam-ssh
提示されている他のすべてのソリューションに対する利点は、起動時に手動でssh-addを実行するのと同等のセキュリティをゼロの労力で組み合わせることができることです。追加のツールはなく、ほとんどのシステム(OpenSSL)にデフォルトですでにインストールされている追加の依存関係が1つあります。
回答
My macOSでのセットアップは次のとおりです(.zshrc
、またはbashの場合は.bash_profile
):
デフォルト値は/private/tmp/com.apple.launchd.SOMETHINGHERE/Listeners
であるため、macOSでは|| [[ $SSH_AUTH_SOCK == *"/private/tmp/"* ]]
の部分が必要です。それ以外の場合、$SSH_AUTH_SOCK
は常に何かに設定されているため、@ ThomasNymanの包括的な回答は失敗します。
次に、.zlogout
(または.bash_logout
(bashの人々向け):
if [ -n "$SSH_AUTH_SOCK" ] ; then eval `/usr/bin/ssh-agent -k` fi
macOS Mojave10.14.5でテスト済み
回答
これは、GitHubによって Git forWindowsでssh-agentを自動起動することで非常によく説明されています。 。これはLinuxでも機能します。
bashまたはGitシェルを開くと、ssh-agent
を自動的に実行できます。次の行をコピーして、Gitシェルの~/.profile
または~/.bashrc
ファイルに貼り付けます。
env=~/.ssh/agent.env agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; } agent_start () { (umask 077; ssh-agent >| "$env") . "$env" >| /dev/null ; } agent_load_env # agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?) if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then agent_start ssh-add elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then ssh-add fi unset env
秘密鍵がデフォルトの場所の1つに保存されていない場合(~/.ssh/id_rsa
)、SSH認証エージェントにキーの場所を指示する必要があります。キーをssh-agentに追加するには、ssh-add ~/path/to/my_key
と入力します。
ヒント: ssh-agent
にしばらくしてからキーを忘れさせたい場合は、次のことができます。 ssh-add -t <seconds>
を実行して設定します。