Ubuntuでssh-addを使用して秘密鍵を永続的に追加するにはどうすればよいですか? [シャットダウン]
How Add Private Key Permanently Using Ssh Add Ubuntu
パスワードで保護された秘密鍵を持っており、SSH経由でサーバーにアクセスできます。
私は2つのLinuxを持っています( ubuntu 10.04)マシン、ssh-addコマンドの動作は両方で異なります。
マシンでは、「ssh-add.ssh / identity」を使用してパスワードを入力すると、キーが永続的に追加されます。つまり、コンピューターの電源を切って再度ログインするたびに、キーが追加されます。
もう1つは、ログインするたびにキーを追加する必要があります。
私が覚えている限り、私は両方に対して同じことをしました。唯一の違いは、キーが永続的に追加されたキーに作成されることです。
誰かがそれを他のマシンに恒久的に追加する方法を知っていますか?
#1階
Mac OS X Lionでは、同じ質問には答えませんでした。私はついに追加しました:
ssh-add ~/.ssh/id_rsa &>/dev/null
私の.zshrcの場合(ただし、.profileも関係ありません)、これで修正されるようです。
(ここに示されているように: http : //geek.michaelgrace.org/2011/09/permanently-add-ssh- キー -ssh-add /)
#2階
@Aaronのソリューションを試しましたが、ターミナルで新しいタブを開くたびにキーが再度追加されるため、あまり役に立ちませんでした。だから私はそれを少し変更しました(私のキーのほとんどはパスワードで保護されているので、出力を/ dev / nullに送信できないことに注意してください):
added_keys=`ssh-add -l` if [ ! $(echo $added_keys | grep -o -e my_key) ] then ssh-add '$HOME/.ssh/my_key' fi
これは、特定のキーをチェックするために行われますssh-add -l
(追加されたすべてのキーを一覧表示します)見つからない場合は、ssh-add
に追加します。 。
これで、初めて端末を開いたときに、コンピューターを再起動する(またはログアウトする-チェックしなかった)まで、秘密鍵のパスワードを入力するように求められます。
キーがたくさんあるので、ssh-add -l
出力は変数に格納されてパフォーマンスが向上します(少なくともパフォーマンスを向上させることができると思います:))
PS:私はLinuxを使用していますが、このコードは私のものになります~/.bashrc
ファイル-MacOS Xを使用している場合は、.zshrc
または.profile
に追加する必要があると思います。
編集:コメント@Aaron .zshrc
File from use zsh
Shellで指摘されているように、使用しない場合(わからない場合は、使用している可能性が高いbash
代わりに)、このコードは.bashrc
fileに移動する必要があります。
#3階
私の場合、解決策は次のとおりです。
構成ファイルのアクセス許可は600である必要があります。
chmod 600 config
上記のコメントで述べたように一般的な意見
プロファイルの内容に触れる必要はありません。
#4階
Ubuntu 14.04(おそらく以前、おそらくまだ)では、コンソールさえ必要ありません。
- 開始
seahorse
または、「キー」を検索するために見つけたものを見つけます - そこでSSHキーを作成します(またはインポートします)
- パスワードを空白のままにする必要はありません
- 公開鍵をサーバー(またはそれ以上)にプッシュすることもできます
- あなたは実行することになります ssh-agent そして、このキーをロードしますが、ロックされています
- use
ssh
ID(つまりキー)はプロキシを介して取得されます - セッション中に初めて使用する場合、パスフレーズがチェックされます
- また、ログイン時に自動的にキーのロックを解除することを選択できます
- これは、ログイン認証がキーのパスワードをラップするために使用されることを意味します
- 注:IDを転送する(つまりプロキシ転送)場合は、
-A
電話ssh
またはデフォルトとして設定してください- それ以外の場合はできません 後で3台目のコンピューターのコンピューターにログオンします このキーを使用してください 乗る 認証
#5階
ssh-addで-Kオプションを使用して、Mac OSX(10.10)でこの問題を解決しました。
ssh-add -K ~/.ssh/your_private_key
macOS 10.12以降の場合、ssh構成を次のように個別に編集する必要があります。 https : //github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain
#6階
'〜/ .bashrc'に次の動作を追加して問題を解決しました。 Ubuntu14.04デスクトップを使用しています。
eval `gnome-keyring-daemon --start` USERNAME='reynold' export SSH_AUTH_SOCK='$(ls /run/user/$(id -u $USERNAME)/keyring*/ssh|head -1)' export SSH_AGENT_PID='$(pgrep gnome-keyring)'
#7階
非常に簡単^ _ ^ 2つのステップ
1.yumインストールキーホルダー
2.次のコードを.bash_profileに追加します
/usr/bin/keychain $HOME/.ssh/id_dsa source $HOME/.keychain/$HOSTNAME-sh
#8階
Ubuntuのクイックヒントで説明されているように、キーチェーンを追加するだけです。 https:////help.ubuntu.com/community/QuickTips
何
ssh-agentとssh-addを常に起動する代わりに、キーチェーンを使用してsshキーを管理できます。キーチェーンをインストールするには、ここをクリックするか、Synapticを使用してコマンドラインからジョブまたはapt-getを実行するだけです。
コマンドライン
ファイルをインストールする別の方法は、ターミナルを開いて([アプリケーション]-> [アクセサリ]-> [ターミナル])、次のように入力することです。
sudo apt-get install keychain
ファイルの編集
次に、次の行を$ {HOME} /。bashrcまたは/etc/bash.bashrcに追加する必要があります。
keychain id_rsa id_dsa . ~/.keychain/`uname -n`-sh
#9階
Ubuntuを実行するために2つのid_rsaキーを使用します。 (一人で仕事する)。 ssh-addはキー(個人キー)を記憶し、会社キーを毎回忘れます。
2つの違いを確認すると、私の個人キーには400の権利があり、会社には600の権利があることがわかります。 (あなたは+ wを持っています)。会社のキー(uwまたは400に設定)からユーザーの書き込み権限を削除すると、問題が解決しました。 ssh-addは、これら2つのキーを記憶できるようになりました。
#10階
解決策は次のとおりです~/.ssh/config
キーファイルをファイルに追加して、キーファイルを強制的に永続的に保存します。
IdentityFile ~/.ssh/gitHubKey IdentityFile ~/.ssh/id_rsa_buhlServer
〜/ .sshディレクトリに「config」ファイルがない場合は、作成する必要があります。ルート権限は必要ないので、次のように言ってください。
nano ~/.ssh/config
...そして、要件に応じて上記の行を入力します。
このためには、ファイルにchmod600が必要です。コマンドchmod 600 ~/.ssh/config
を使用できます。 。
コンピューター上のすべてのユーザーにキーを使用させる場合は、これらの行を/etc/ssh/ssh_config
に入力します。そして、誰もがアクセスできるフォルダにキーを置きます。
さらに、ホストに固有のキーを設定する場合は、〜/ .ssh / configで次の操作を実行できます。
Host github.com User git IdentityFile ~/.ssh/githubKey
IDが多数ある場合、最初に間違ったIDを試したためにサーバーが拒否することはありません。これには、利点があります。特定のIDのみが試行されます。
#11階
これは私のために働いた。
ssh-agent /bin/sh ssh-add /path/to/your/key
#12階
Fishシェルを使用しているユーザーの場合、次の関数を使用して、〜/ .config / fish /config.fishで呼び出すことができます。そうなる id_rsa 最初のすべてのキーがssh-agent
にロードされます。
# Load all ssh keys that start with 'id_rsa' function loadsshkeys set added_keys (ssh-add -l) for key in (find ~/.ssh/ -not -name '*.pub' -a -iname 'id_rsa*') if test ! (echo $added_keys | grep -o -e $key) ssh-add '$key' end end end # Call the function to run it. loadsshkeys
ターミナルを開いたときに自動的に起動したい場合ssh-agent
、使える tuvistavie / fish-ssh-agent これをする。
#13階
Ubuntu 16.04でも同じ問題が発生しました。一部のキーは永続的に追加され、他のキーは各セッションで実行する必要がありますssh-add
。永続的に追加された鍵には、~/.ssh
にある秘密鍵と公開鍵があることがわかりました。 、各セッションで忘れられたキーは~/.ssh
カタログ内~/.ssh
。したがって、解決策は簡単です。コピーする必要があります 民間 そして公開鍵~/.ssh
実行前ssh-add
。