serverapps:security:ssh
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
serverapps:security:ssh [2017/08/17 06:54] – [認証用のKeyの作成] hayashi | serverapps:security:ssh [2024/11/15 03:13] (現在) – [tmuxの場合] admin | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== SSH ====== | ||
+ | ===== ポートフォワード ===== | ||
+ | '' | ||
+ | < | ||
+ | Host __r_target_8080 | ||
+ | Hostname | ||
+ | User UserName | ||
+ | LocalForward | ||
+ | </ | ||
+ | これでssh接続をすると'' | ||
+ | その状態で'' | ||
+ | |||
+ | なお、'' | ||
+ | < | ||
+ | ProxyCommand | ||
+ | </ | ||
+ | |||
+ | ===== ssh-agent ===== | ||
+ | 通常は.bashrcなどに記述するが、tcshなども利用しているので以下のスクリプトを作成 | ||
+ | < | ||
+ | #!/bin/sh | ||
+ | # for ssh-agent | ||
+ | cd ~ | ||
+ | if [ -f ~/ | ||
+ | . ~/ | ||
+ | fi | ||
+ | if [ -z " | ||
+ | / | ||
+ | . ~/ | ||
+ | fi | ||
+ | ssh-add -l > /dev/null 2>&1 || ssh-add | ||
+ | </ | ||
+ | |||
+ | ==== tmuxの場合 ==== | ||
+ | |||
+ | ForwardAgent が有効な状態で、ssh ログインしなおすと、環境変数SSH_AUTH_SOCK が新しくなるが、リアタッチ((tmux attach))したtmux ではセッション上のシェルは以前の SSH_AUTH_SOCK の値を保持し続けているためうまく動かない | ||
+ | |||
+ | === 参考 === | ||
+ | * [[serverapps: | ||
+ | ===== rootログインの禁止 ===== | ||
+ | CentOSなどはデフォルトで許可されているので注意 | ||
+ | |||
+ | # cat / | ||
+ | PermitRootLogin no | ||
+ | |||
+ | ===== パスワードログインを禁止して公開鍵認証 ===== | ||
+ | |||
+ | ==== 認証用のKeyの作成 ==== | ||
+ | 認証用の秘密鍵と公開鍵のペアが作成される\\ | ||
+ | **安全性からed25519を推奨します** 2017.05.22((ecdsaを非推奨とするため削除しました)) | ||
+ | |||
+ | $ cd | ||
+ | $ ssh-keygen -t ed25519 | ||
+ | OR | ||
+ | $ ssh-keygen -t rsa -b 4096 | ||
+ | OR | ||
+ | $ ssh-keygen -t rsa -b 4096 -N " | ||
+ | |||
+ | 利用可能な鍵証明書一覧 | ||
+ | $ ssh -Q key-cert | ||
+ | |||
+ | 利用可能な鍵一覧 | ||
+ | $ ssh -Q key | ||
+ | |||
+ | === 暗号強度の確認 === | ||
+ | |||
+ | $ ssh-keygen -l -f ~/ | ||
+ | 256 SHA256: | ||
+ | $ ssh-keygen -l -f ~/ | ||
+ | 384 SHA256: | ||
+ | $ ssh-keygen -l -f ~/ | ||
+ | 4096 SHA256:/ | ||
+ | |||
+ | |||
+ | ==== 公開鍵をリモートホストのauthorized_keysに追加 ==== | ||
+ | |||
+ | $ cat ./ | ||
+ | .sshディレクトリがないと失敗するのでその場合には | ||
+ | $ ssh user@remote_host "mkdir ./.ssh && chmod 700 ./ | ||
+ | とかやってディレクトリを作っておく。 | ||
+ | |||
+ | CentOSならssh-copy-idが入っているのでそちらを使うも良し。\\ | ||
+ | FreeBSDにも入りました。((2017.05.22:10.3で確認))\\ | ||
+ | < | ||
+ | $ ssh-copy-id -i .ssh/ | ||
+ | |||
+ | なお、authorized_keysはPermissionを **600**にしておかないとLogin に失敗するので注意 | ||
+ | ==== パスワードログインを禁止 ==== | ||
+ | # cat / | ||
+ | ...... | ||
+ | PasswordAuthentication no | ||
+ | ChallengeResponseAuthentication no | ||
+ | |||
+ | |||
+ | FreeBSDは標準でPasswordAuthentication を禁止しているがChallengeResponseAuthentication は許可されているのでこちらも必ず「No」にしておく。 | ||
+ | |||
+ | Ubuntuで「/ | ||
+ | |||
+ | <file / | ||
+ | # | ||
+ | PasswordAuthentication no | ||
+ | </ | ||
+ | ==== 公開鍵認証をON ==== | ||
+ | |||
+ | PubkeyAuthentication yes | ||
+ | < | ||
+ | |||
+ | AuthorizedKeysFileを指定すると、このマシンから他へssh接続する際に// | ||
+ | |||
+ | |||
+ | ==== user's configuration file ==== | ||
+ | .ssh/ | ||
+ | < | ||
+ | Host example | ||
+ | HostName | ||
+ | Port 10022 | ||
+ | User | ||
+ | IdentityFile ~/ | ||
+ | </ | ||
+ | これで以下のようにアクセス可能 | ||
+ | $ ssh example | ||
+ | |||
+ | ===== 秘密鍵から公開鍵を生成する ===== | ||
+ | |||
+ | |||
+ | ssh-keygen -y -f ~/ | ||
+ | |||
+ | ===== 公開鍵からfinger printを生成する ===== | ||
+ | |||
+ | |||
+ | ssh-keygen -lf ~/ | ||
+ | |||
+ | ===== knownhostの更新 ===== | ||
+ | |||
+ | host=" | ||
+ | ssh-keygen -R $host | ||
+ | ssh-keyscan -H $host >> ~/ |