linux:open_ssh:client

文書の過去の版を表示しています。


ssh クライアントの使い方

$ ssh user_name@server_name.com
$ ssh user_name@server_name.com -p22022

ローカルの8080ポートへの要求をリモートのlocalhost:80に転送

$ ssh user_name@server_name.com -L10080:localhost:80


ローカルの1022ポートへの要求をリモートの192.168.1.1:22に転送

$ ssh user_name@server_name.com -L1022:192.168.1.1:22
  • Linux or Mac では ssh-Leyden を使用する。
    $ ssh-keygen -t scdsa -b 521 -C "Tomoyan ECDSA"
  • Linux or Mac では ssh-keygen を使用して、RSA(ssh v2)形式の公開/秘密キーのペアを生成する。
    (-C オプションでコメントを付加しておくとよい)
    $ ssh-keygen -t rsa -C "tomoyan rsa"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/tomoyan/.ssh/id_rsa): <- Enterキーを入力
    Enter passphrase (empty for no passphrase): <- パスワードを入力
    Enter same passphrase again: <- 確認用のパスワードを入力
    Your identification has been saved in /home/tomoyan/.ssh/id_rsa.
    Your public key has been saved in /home/tomoyan/.ssh/id_rsa.pub.
    The key fingerprint is:
    2f:13:c3:38:e5:fc:79:0a:b6:27:16:87:2b:b4:89:c2 tomoyan@tomoyan.net
    The key's randomart image is:
    +--[ RSA 2048]----+
    |                 |
    |                 |
    |        .        |
    |       *         |
    |      o S.       |
    |      ..o=..     |
    | .   o o=++ .    |
    |  E . +.+=.o     |
    |   .   o.o.      |
    +-----------------+

    公開キーはパーミッション: 644(rw- r-- r--)で ~/.ssh/id_rsa.pub に生成される。
    秘密キーはパーミッション: 600(rw- --- ---)で ~/.ssh/id_rsa に生成される。

    他からコピーしてきた場合など、クライアント側の秘密キーのパーミッションが適切に設定されていない場合は、警告が表示されて接続できないことがある。(以下は Mac OS X の警告の例)

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    Permissions 0777 for '/Users/nakayama/.ssh/id_rsa' are too open.
    It is recommended that your private key files are NOT accessible by others.
    This private key will be ignored.
    bad permissions: ignore key: /Users/nakayama/.ssh/id_rsa
    Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

    その場合は、パーミッションを正しく設定しなおす。

    $ chmod 600 ~/.ssh/id_rsa
  1. 公開キーは接続先のサーバーに転送しておく。
    $ scp -P 22022 ~/.ssh/id_rsa.pub tomoyan@tomoyan.net:/home/tomoyan/.ssh
    id_rsa.pub                                              100%  397     0.4KB/s   00:00
  2. サーバー上でへ公開キーを登録する。
    $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    ※サーバー上に配置する場合はパーミッションに気をつける。(必ずHomeディレクトリのユーザーをオーナーとするように配置すること!!)

    $ sudo chown tomoyan.tomoyan ~/.ssh -R
    $ sudo chmod 700 ~/.ssh
    $ sudo chmod 600 ~/.ssh/authorized_keys

    パーミッションに誤りがあるとクライアントから接続が出来なくなります。(クライアントエラーの例)

    $ ssh -i ~/.ssh/id_rsa_tomoyan tomoyan@tomoyan.net
    Identity added: /Users/tomoyan/.ssh/id_rsa_tomoyan (/Users/tomoyan/.ssh/id_rsa_tomoyan)
    Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

秘密キーを複数使い分ける場合は、-i オプションで秘密キーを指定する。(標準では ~/.ssh/id_rsa を使用)

$ ssh -i ~/.ssh/id_rsa_tomoyan user_name@server_name.com

※秘密キーは自分だけがアクセスできるように設定しておく

chmod 600 ~/.ssh/id_rsa_tomoyan
$ ssh-keygen -p -f .ssh/id_rsa
Enter old passphrase: <- 古いパスフレーズを入力
Key has comment '.ssh/id_rsa'
Enter new passphrase (empty for no passphrase): <- 新しいパスフレーズを入力
Enter same passphrase again: <- 新しい確認用パスフレーズを入力
Your identification has been saved with the new passphrase.

接続先の設定を簡単に呼び出せるようにするために、ユーザー毎の設定ファイルを記述することができる。

~/.ssh/config の例:

Host tomoyan.net
    HostName        tomoyan.net
    Port            22022
    User            tomoyan
    GatewayPorts    no
    LocalForward    5900    192.168.1.100:5900
    IdentityFile    ~/.ssh/id_rsa

sudo の設定ファイルに env_keep の設定を追記する。

$ sudo vi sudo

以下を追記する。

Defaults    env_keep += "SSH_AUTH_SOCK"
  • linux/open_ssh/client.1434138074.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)