問題タブ [ssh-agent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ssh - 外付けドライブに ssh パスフレーズを保存する
サーバーにアクセスするにはssh
、パスフレーズで保護されたキーを使用します。
キー自体がそのマシンにアクセスするのに十分ではなく、パスフレーズがハッキングされにくいような長いパスフレーズを生成したいと考えています。
ssh-agent
パスフレーズを保存できます。ただし、問題は、そのようなエージェントがパスフレーズをクライアント側のファイルに保存することです。これにより、クライアント マシンにアクセスできる場合にサーバーへのアクセスが容易になります。
パスフレーズの一部を外部ドライブに保存することは可能ですか? その場合、パスフレーズを USB ドライブに保存することができます。たとえば、USB ドライブを持ち歩いていて、サーバーへのアクセスは依然として便利です。外部ドライブを最初のドライブに「バインド」しなくてssh-agent
も呼び出せるように、ドライブを自動的に検出できると便利です。ssh
ssh-agent
結果として、クライアント (ssh
キーを保存する) と外部ドライブ (パスフレーズを保存する) の両方にアクセスできる場合にのみ、サーバーにアクセスできるようにする必要があります。
linux - SSH - パスフレーズを 1 回だけ入力する
で、パスワードの入力$ ssh localhost
を求められました。ログインごとにパスワードを入力するのは面倒で面倒でした。
それで、パスフレーズ付きのsshキーを作成しました..
の内容をコピーしまし~/.ssh/id_rsa.pub
た~/.ssh/authorized_keys
さて、パスフレーズ$ ssh localhost
の提供を求められました。改善はありませんが、 passwordの代わりにpassphraseを提供していました。
私は~/.ssh/authorized_keys に公開鍵を追加しても自動的にログインしません に遭遇しましたが、問題は解決しませんでした。コメントが述べているように、キーがパスフレーズで作成された場合、常にパスフレーズを要求します。
ただし、ssh キーが passphraseなしで作成された場合、パスフレーズはどのssh
操作にも必要ありません。
この投稿から得た重要な点は、verbose フラグ-v
と
検索するPEM_read_PrivateKey failed
と、かなりの数の投稿に出くわしました。そのうちのいくつかは、stackoverflow 自体からのものです。
しかし、適切な解決策を見つけることができませんでした。
次に、sshエージェントを使用してパスフレーズを自動的に入力することについて述べている、パスワードなし、パスフレーズなしのsshのセットアップに出くわしました。
また
繰り返しますが、その特定のセッションでのみ解決されました。新しいセッションを開始するたびに、実行する必要があります
.bashrc または .zshrc に追加できますが、セッションごとにパスフレーズを入力するのは面倒です。
セッション全体で同じ ssh-agent を使用する方法はありますか?
ubuntu - ssh-add が間違ったキーを追加する
背景: カピストラーノを使用してレール アプリをデプロイするジェンキンス ジョブを作成しようとしています。この一環として、その環境の jenkins ユーザーの .ssh フォルダーにコピーした ssh キーを追加する必要があります。そのフォルダーの id_rsa と id_rsa.pub の両方の所有者、グループ、およびアクセス許可を正しく設定しました。
エラーが表示されますNet::SSH::AuthenticationFailed: Authentication failed for user deploy@[server]
。調査の結果、jenkins ユーザーとして次のコマンドを実行すると、次のことが起こります。
ssh-add ~/.ssh/id_rsa
ここまでは順調ですね。
しかし、 ~/.ssh/id_rsa.pub の公開鍵は、によって返されるものではありませんssh-add -L
ローカル マシンで同じ手順を実行すると、正しいキーが追加され、環境に ssh できるようになります。
ssh-add が間違ったキーを追加しているように見えるのはなぜですか (システムのどこにも見つからないようです)。
windows - git ssh エージェントは実行中ですが、ユーザー名またはパスワードを保存していません
初期設定
私は Posh-Git を使用しており、SSH の使用に関する Phil Haack のアドバイスに従いました。つまり、次のことを行いました。
- msysgit をインストールします。
- Posh-Git を更新する
- ssh-agent を PATH に追加します。
初期テスト
Powershell を起動すると、ssh-agent が起動します。これはいい。実行すると、次のようGet-Proces
に表示されます。
ただし、起動時に、ユーザー名とパスワードを求められません。これは良くない。
さらに、単一の PowerShell セッション中に、git は繰り返しユーザー名とパスワードを要求し、決して覚えていません。
SSH キーの検索
私の SSH キーは にありC:\Users\<my-user>\.ssh
ます。そこには次の 2 つのファイルがあります。
私は先に行って実行しssh-add "C:\Users\<my-user>\.ssh\github_rsa"
ました。
それでも、エージェントは私の資格情報を覚えていません。
Git シェルでのテスト
msysgit には Git シェルが付属しており、これを実行すると、認証は完璧に行われます。ユーザー名とパスワードを求められることはまったくありません。
私はここの答えを見てきました。
Git シェルと通常の Windows PowerShell プロンプトの両方で、リポジトリはすべて HTTPS を使用しています。
linux - Linux bash exec と ssh-agent の動作について説明してください
https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s3-openssh-config-ssh-agent.htmlによると
私は実行する必要がexec /usr/bin/ssh-agent $SHELL
あり、私が理解しているようにexec
、現在のシェルを指定したプログラムに置き換えます。
「コマンドラインが指定されている場合、これはエージェントのサブプロセスとして実行されます。コマンドが終了すると、エージェントも終了します。"
つまり、bash が ssh-agent に置き換えられることを期待していると思いますが、コマンドラインを指定したため、新しい bash が実行され、次に ssh-agent が実行され、古い bash が置き換えられます。
本当に何が起こっているのですか?