ssh


複数環境下での作業ミスを防ぐ


openssh v8.8からssh接続できない場合

記事:


Reverse ssh tunnel

記事:


ed25519鍵 はCentOS6のopensshでは非対応

環境:


~/.ssh/known_hosts から該当ホストを消す

ssh-keygen -R <hostname>

秘密鍵の形式変更


Fingerprint(フィンガープリント)の確認


sshコマンドでパスワード認証を強制する


秘密鍵にパスフレーズを追加する


Includeでssh/configを分割する

OpenSSH 7.3以上で「Include」が使用可能になった。


ssh-copy-id: ERROR: failed to open ID


Could not load host key: /etc/ssh/ssh_host_dsa_key

messagesに以下のログが出続ける事があった。
「/etc/ssh/」以下に該当ファイルが無いのが原因


sshログイン時にコマンド実行


account is locked

CentOS5でパスワードを設定せず、公開鍵認証だけのユーザで発生する


認証方式を固定する

公開鍵認証やLDAPの検証など。


SSH接続が遅い場合

接続先がIPでも、何故かDNSの名前解決をしようとして遅い場合がある。

vim /etc/ssh/sshd_config
----
# 名前解決しない
UseDNS no
#  IPv4を使う
AddressFamily inet
# GSSAPI 認証をしない
GSSAPIAuthentication no
----
sudo service sshd restart

ControlMasterのセッション確認と終了


ControlMaster:セッションを束ねて接続を早くする


秘密鍵から公開鍵を生成する

公開鍵が無い場合でも、秘密鍵があれば生成できる

ssh-keygen -y -f ~/.ssh/test.pem

指定したコマンドのみ実行可能な公開鍵認証を設定する

sshで特定のコマンドの実行だけ許可し、実行後すぐに切断する。
複数設定したい場合は、別の公開鍵を作成すれば良いだろう。


ssh-agent, ssh-addでパスフレーズ/秘密鍵を省略

秘密鍵のパスフレーズが有効な場合、1度だけ入力すれば良いようにできる。
また、踏み台経由でログインする等、複数の秘密鍵を登録しておくと便利。


ssh-agentから鍵の削除


localのssh-addで登録した公開鍵を、リモートホストでも使う


localのssh-addで登録した公開鍵を、screen で使う


パスワード認証をやめて公開鍵認証にする場合

  1. 鍵が無い場合、VMや PuTTYgen等で認証鍵を作る
    ssh-keygen -t ed25519 -C "username@example.com"
  2. 個人の公開鍵を ~/.ssh/authorized_keys に登録
    ssh-copy-id -i ~/.ssh/id_rsa.pub <username@example.com>
  3. sudoしたい場合は sudoers に登録
    echo 'username ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/username
    chmod 440 /etc/sudoers.d/username
  4. パスワード削除
    passwd -d <username>

OpenSSLのHeartbleed bug修正後に発生した問題


Too many authentication failures ...


sshd_configの検証


SSHで空パスワードでのログインを許可する


ssh接続時に詳細を表示

並列SSH pssh(Parallel ssh)

sshで複数の秘密鍵を使い分ける

vi ~/.ssh/config
----
IdentityFile ~/.ssh/example1.pem
IdentityFile ~/.ssh/example2.pem
----

sshリモートコマンド


ssh, scp接続時のフィンガープリントの確認をしない


sshでのタイムアウトを防ぐ


SSH代替mosh


対話処理の自動化

#!/bin/sh
fdasd /dev/dasdg << EOF
v
MYVOL1
w
EOF

ssh config


WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

このWARNはリモートホストが変わったという事


多段ssh/sshポートフォワーディング


公開鍵認証


公開鍵の登録


sshで必ずパスワードを要求されてしまうときは

パスワードなしでログインしようとして、 authorized_keysに公開鍵を追加してもパスワードを要求されてしまう場合はオーナー、パーミッションを確認しましょう。
パーミッションの設定が正しくないと接続できないようです。
私が失敗したときは、~/.ssh/が0770でした。

filenamepermission
/home/userOK: 0700
OK: 0755
NG: 0770
~/.ssh/0700
~/.ssh/authorized_keys0600

sshでパスワードなしにログインする(公開鍵認証)

公開鍵を作成し、それを相手サーバに登録する事でパスワード入力なしにログイン可能となる。

  1. 登録側ユーザになって、RSA鍵を作成する
    $ su - hoge
    $ ssh-keygen -t ed25519 -C "username@example.com"
  2. 公開鍵(id_rsa.pub)を相手側サーバに登録する
    $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    $ chmod 755 ~/.ssh
    $ chmod 600 ~/.ssh/authorized_keys
    $ scp $USER@$SSH_HOST:.ssh/{identity,id_rsa,id_dsa}  ~/.ssh/
scp ~/.ssh/{id_rsa,id_rsa.pub,aut install P/PE/PETDANCE/ack-1.58.tar.gz

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-01-18 (木) 19:17:20