OpenSSH

2022-06-12 (日) 09:53:07

OpenSSH

SSH を使った機能

ツール

  • ssh
  • ssh-add
  • ssh-keysign
  • ssh-keyscan
  • ssh-keygen

サービス

  • sshd
  • sftp-server
  • ssh-agent

コマンド

ssh-keygen

  • 鍵の生成
    ssh-keygen -t rsa
    ssh-keygen -t rsa -b 2048
    ssh-keygen -t rsa -b 4096
    ssh-keygen -t rsa -b 4096 -N <pass-phrase>
    ssh-keygen -t rsa -b 4096 -f <output-keyfile>
    
    ssh-keygen -t dsa
    ssh-keygen -t ecdsa
    ssh-keygen -t ed25519
  • 鍵の生成(セキュリティキーを使って生成)
    ssh-keygen -t ecdsa-sk
    ssh-keygen -t ed25519-sk
    ssh-keygen -t ed25519-sk -O resident ※[[セキュリティキー]]内に鍵を生成する
    • OpenSSH 8.2 でFIDOをサポート
  • OpenSSH形式の鍵を指定したフォーマットで標準出力
    ssh-keygen -e -f <input-keyfile> ※デフォルト(RFC4716)
    ssh-keygen -e -f <input-keyfile> -m RFC4716
    ssh-keygen -e -f <input-keyfile> -m PKCS8
    ssh-keygen -e -f <input-keyfile> -m PEM
  • 指定したフォーマットの鍵をOpenSSH形式で標準出力
    ssh-keygen -i -f <input-keyfile> ※デフォルト(RFC4716)
    ssh-keygen -i -f <input-keyfile> -m RFC4716
    ssh-keygen -i -f <input-keyfile> -m PKCS8
    ssh-keygen -i -f <input-keyfile> -m PEM
  • 秘密鍵のパスフレーズを変更する
    ssh-keygen -p -f <input-private-keyfile>
  • 秘密鍵から公開鍵をOpenSSH形式で標準出力
    ssh-keygen -y -f <input-private-keyfile>
  • 公開鍵のフィンガープリントを表示 ※方式と鍵長が確認できる
    ssh-keygen -l -f <input-private/public-keyfile>
  • known_host から指定したホストの情報を削除する
    ssh-keygen -R <host-name>
    ssh-keygen -R [<host-name>]:<port-no>

ssh-agent

ssh-agent

  • 起動
    eval `ssh-agent`
  • 停止
    ssh-agent -k	

ssh-add

  • 秘密鍵をssh-agentに登録 ※OSを再起動すると削除される
    ssh-add <~/.ssh/private-keyfile>
  • ssh-agentに登録されている鍵の削除
    • 指定した鍵を削除
      ssh-add -d <~/.ssh/private-keyfile>
    • 全ての鍵を削除
      ssh-add -D 
  • ssh-agentに登録されている鍵の確認
    ssh-add -l ※フィンガープリントを表示
    ssh-add -L ※公開鍵を表示
  • キーチェーンとの連携 ※macOSのみ
    • 秘密鍵のパスフレーズをキーチェーンに登録
      ssh-add -K ※非推奨
      ssh-add --apple-use-keychain
      ssh-add --apple-use-keychain <~/.ssh/private-keyfile>
    • 秘密鍵とキーチェーンに登録されているパスフレーズをssh-agentに登録
      ssh-add -A ※非推奨
      ssh-add --apple-load-keychain
      ssh-add --apple-load-keychain <~/.ssh/private-keyfile>
  • 登録した鍵を使って接続
    ssh -A [nameOfTheKey]
  • 設定ファイル(~/.ssh/config)
    ServerAliveInterval [numberOfSecond]
    ForwardAgent
    
    Host *
     AddKeysToAgent yes ※SSHの公開鍵認証時に使用した秘密鍵と入力したパスフレーズをssh-agentに登録する
     UseKeyChain yes ※SSHの公開鍵認証時に使用した秘密鍵と入力したパスフレーズをキーチェーンに登録する(macOSのみ)
     IdentityFile ~/.ssh/ed_ed25519 ※SSH接続する際に使用する鍵を指定(複数指定の場合は順番に試行)
     HostName *

鍵のフォーマット

関連サイト

関連サイト

関連用語