以前、RLoginでエックスサーバーに接続する方法を書きました。
RLoginを使う場合はこの方法で問題ないんですが、コマンドラインでssh接続する場合は結構手間なんですよね。。。
そこで、ssh configとssh-agentを使ってログインを簡素化することにしました。
ssh接続をしたことがない人は、以下を参考に公開鍵と秘密鍵を作成しておいてください。
-
RLoginでエックスサーバーにSSHする方法
みなさん、SSHしてますか(意味不明) WordPressは、ブラウザだけでサーバーのファイルを修正できるようになってます。 でも、1行追加するだけなのにダウンロード→編集→アップロードとかめんどくさ ...
続きを見る
目次
今回のゴール
従来の長いコマンドを
1 |
ssh -l サーバーID -i 秘密鍵ファイル名 サーバーID.xsrv.jp -p 10022 |
これだけで接続できるようにします。
1 |
ssh xserver |
エックスサーバー以外の鍵を使った接続でも同様です。
.ssh configを書く
.ssh configとは
sshを行う時に参照される設定ファイルです。
configファイルに接続先や秘密鍵のファイルパスなどを書いておくと、sshコマンド実行時に入力を省略できます。
.ssh configファイルを作成する
まだファイルを作成したことがない場合
以下に設定ファイルを作成します。
Windows
1 2 |
# 拡張子は不要 C:\Users\ユーザー名\.ssh\config |
mac/Linux
1 |
~/.ssh/config |
configファイルに設定を書く
すでに設定がある場合は最後など、影響がない場所に追記してください。
1 2 3 4 5 6 |
Host xserver HostName sv○○○○.xserver.jp Port 10022 User サーバーID IdentityFile 秘密鍵.keyのパス ServerAliveInterval 60 |
エックスサーバーは操作しないとすぐに時間切れで接続が切れてしまいます。
ServerAliveIntervalを追記しておくと、設定した秒数毎にサーバーにメッセージを送り、切断を防ぐことができます。
ssh-agentの設定を行う
ssh-agentとは
エックスサーバーで作成した秘密鍵にはパスフレーズが設定されているので、通常であればログインの度にパスフレーズを入力する必要があります。
確かにセキュリティ的には正しいのですが…面倒ですよね?
パスフレーズが必要だと、バッチ処理なんかもやりにくいです。
ssh-agentを設定しておくと秘密鍵に設定されているパスフレーズの入力を代わりにやってくれるので、手動入力が不要になります。
ssh-agentを起動する
Windowsの場合
管理者権限でコマンドプロンプトを起動し、以下を入力します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
sc config ssh-agent start=auto sc start ssh-agent #こんな感じの表示になればOK # SERVICE_NAME: ssh-agent # TYPE : 10 WIN32_OWN_PROCESS # STATE : 4 RUNNING # (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) # WIN32_EXIT_CODE : 0 (0x0) # SERVICE_EXIT_CODE : 0 (0x0) # CHECKPOINT : 0x0 # WAIT_HINT : 0x0 # PID : 12260 # FLAGS : |
mac/Linuxの場合
以下のコマンドを実行します。
1 2 3 4 5 6 |
$ eval `ssh-agent` Agent pid 237975 # pidが表示されればOK # このままだとログインの度に実行が必要なので、~/.bashrcにコマンドを追記しておく vim ~/.bashrc |
ssh-addで秘密鍵とパスフレーズを登録する
以下のコマンドを実行します。
Windowsの場合は管理者権限でコマンドプロンプトを起動してください。
1 2 3 |
ssh-add 秘密鍵.keyのパス # 実行後にパスフレーズを入力する Identity added: |
エックスサーバーにログインする
.ssh configに書いた設定を使ってログインします。
1 |
ssh xserver |
最初の1回はパスフレーズを求められますが、2回目からは省略されます。
.ssh configってすごい便利
パスフレーズの入力がなくなったので、sshで接続してあれこれするプラグインが使えるようになりました!
今回は直接対象のサーバーにアクセスするだけでしたが、踏み台の先のサーバーに直接アクセスしたりできるんですね。
興味出てきたので、そのうちまとめます。