スポンサーリンク

【Ubuntu】「~/.ssh/config」を使って簡単にSSHの接続を行う方法

Ubuntuから別のサーバにSSHで接続を行う際に、接続先の設定を保存しておいて簡単に接続できるようにする方法です。

「~/.ssh/config」で簡単SSH接続

SSHで接続を行う際にポート番号を変更していたり鍵認証方式を採用している場合、毎回下記のようなコマンドを手入力するのはとても面倒くさいです。

ssh -p ポート番号 -i 秘密鍵 ユーザ@サーバ名
ssh -p ポート番号 -i 秘密鍵 -l ユーザ サーバ名

「~/.ssh/config」に接続サーバごとの設定を記述しておくことで、長い引数を入力せずにSSH接続を行うことができるようになります。

ssh 設定名

ちなみに、この設定はscpやsftpを使用するときにも使用できます。

sftp 設定名
scp 設定名:ファイルパス コピー先
scp コピー元 設定名:ファイルパス 
パスワード認証時のパスワードや秘密鍵のパスフレーズはどちらも設定することが出来ないため、接続時に入力が求められます。

「~/.ssh/config」作成

まずはユーザのホームディレクトリに「.ssh」フォルダがない場合は作成を行います。

すでに作成されている場合はこの作業はスキップしてください。

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

「~/.ssh/config」ファイルを作成し、接続先の設定を行います。

$ vi ~/.ssh/config

設定項目

基本的な設定項目は下記の通りとなります。

SSH接続に鍵認証方式を使用している場合は、「IdentitiesOnly yes」と「IdentityFile」で秘密鍵の場所を指定する必要があります。

「TCPKeepAlive yes」と「ServerAliveInterval 60」は一定時間操作を行わなかった時にSSH接続が自動切断されないようにする設定です。

Host 設定名_01
    HostName 接続先サーバアドレス
    User 接続ユーザ
    Port SSHポート番号
    TCPKeepAlive yes
    ServerAliveInterval 60
    IdentitiesOnly no

##### 鍵認証方式の設定 #####

Host 設定名_02
    HostName 接続先サーバアドレス
    User 接続ユーザ
    Port ポート番号
    TCPKeepAlive yes
    ServerAliveInterval 60
    IdentityFile 秘密鍵  # 秘密鍵を指定
    IdentitiesOnly yes   # 鍵認証方式の場合 yes

設定例

「~/.ssh/config」の設定例です。

接続先サーバの設定は複数設定することができます。

Host www
    HostName www.example.com
    User webadmin
    Port 22222
    TCPKeepAlive yes
    ServerAliveInterval 60
    IdentityFile ~/.ssh/id_ed25519_www
    IdentitiesOnly yes

Host dev
    HostName 192.168.0.254
    User tamohiko
    Port 22
    TCPKeepAlive yes
    ServerAliveInterval 60
    IdentityFile ~/.ssh/id_ed25519_dev
    IdentitiesOnly yes

パーミッション設定

「~/.ssh/config」の設定が完了したら、自分自身だけが読み書き出来るようにパーミッションを変更しておきます。

$ chmod 600 config

接続確認

すべての設定が完了したら、実際に接続できる確認を行ってください。

$ ssh www
$ ssh dev

コメント

タイトルとURLをコピーしました