LoginSignup
0
0

More than 1 year has passed since last update.

Linux ssh,ssh-agentについて

Posted at

●sshコマンド

ssh [ オプション ] [ユーザ名@]接続先ホスト
・-l ログインユーザ名の指定(-lオプションと[ユーザ名@]両方を省略した場合は現在のユーザ名を指定)
・-p 接続先ポート番号の指定
・-i 秘密鍵のファイルを指定
・-o ssh-configで設定できるオプションの指定

sshコマンドは以下の順で取得した設定に基づいて動作。

  1. コマンドラインオプション
  2. ユーザ毎の設定ファイル(~/.ssh/config)
  3. システム全体の設定ファイル(/etc/ssh/ssh_config)

●ssh-agent
パスフレーズ付きの秘密鍵を使ってSSH接続する際に毎回パスフレーズを入力しないで済むようにするには、「ssh-agent」を使用。

「ssh-agent bash」コマンドでssh-agentはbashを起動し、バックグラウンドで動作。ssh-agentによって起動されたシェル内で子プロセスとしてssh-addやsshコマンドを実行すると、これらの認証エージェントとしてssh-agentが機能。

また、指定した文字列を評価後に連結して実行させるevalコマンドでssh-agentを起動することも可能。この場合、現在のシェルでssh-agentが動作。

●ssh-add -l
ssh-agentに登録された秘密鍵の一覧を表示する

●ssh-agent -k
ssh-agentを終了する

●SSH Agent Forwarding
ローカルホストから多段階でSSHアクセスする際に、パスフレーズを聞かれないようにしたり、秘密鍵を中継サーバに置かなくていいように、認証情報を転送する仕組み。
ローカルホストでのみ秘密鍵をssh-agentに登録しておけば、その後のSSH接続でもssh-agentが秘密鍵を引き継ぎ、複数のホストを経由した公開鍵認証が可能。

※ユーザの公開鍵は各サーバの「~/.ssh/authorized_keys」に登録しておく必要がある

●SSH Agent Forwardingを許可するには以下の設定が必要。
・SSHサーバの設定ファイル「/etc/ssh/sshd_config」で「AllowAgentForwarding yes」を設定。(デフォルトはyes)

・また、次のいずれかの方法で許可する。
 - SSH接続時に、sshコマンドで「-A」オプションを使用。(「-a」オプションで禁止)
 - 常に許可するには、SSHサーバのシステム設定ファイル「/etc/ssh/sshd_config」、または接続先ユーザの設定ファイル「~/.ssh/config」で「ForwardAgent yes」を設定する。

●SSHポートフォワーディング
SSHがポートを用意して通信を中継することをSSHポートフォワーディングという。また、SSHの暗号化接続内を通ることで、SSHサーバ・クライアント間でのHTTP通信は外部から内容を盗み見ることができなくなる。「SSHトンネリング」とも呼ばれる。SSHポートフォワーディング設定を行うことを「トンネルを掘る」ということもある。

■ローカルポートフォワーディング
-Lは「Local port forwarding」のためのオプション。

ssh -L 転送対象ポート番号:SSHサーバから見た接続先アドレス:SSHサーバからの接続先ポート番号 [SSH接続ユーザー名@]SSHサーバアドレス

■リモートポートフォワーディング
SSHサーバが転送用ポートを用意し、SSHクライアントの指定されたポートに転送

ssh -R 転送対象ポート番号:SSHクライアントから見た接続先アドレス:SSHクライアントからの接続先ポート番号 [SSH接続ユーザー名@]SSHサーバアドレス

●X11フォワーディング
ネットワークを介したXサーバ・クライアントの通信に特化し、通信の暗号化、設定作業を簡略化できる。Xサーバ・クライアント間の通信は暗号化されていないため、入力したキー情報など盗み見られる恐れがある。X11フォワーディングを使うことで、ローカルのXサーバとリモートのXクライアントで安全に通信を行うことができる。
この機能を使うには、SSHサーバの設定で「X11Forwarding yes」となっている必要がある。

ssh -X [SSH接続ユーザー名@]SSHサーバアドレス [Xクライアントコマンド]

-Xオプションを付けてssh接続すると、Xクライアントの表示用にDISPLAY環境変数が自動で設定される。

●SSHのデーモン「sshd」の設定ファイルは「/etc/ssh/sshd_config」。
このファイルで認証の方法などを設定。rootユーザのSSHログインの許可/不許可も設定可能で、不許可とする場合は「PermitRootLogin」の項目を「no」とする。(デフォルトはyes)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0