serverapps:security:ssh
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| serverapps:security:ssh [2017/08/17 06:47] – [認証用の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 >> ~/ | ||
