今までサーバーにssh接続する時はMac OS X 付属のターミナルを使っていたのですが、メインに使っているCoda2にもターミナルが備わっているのでこちらも使うようになりました。
Coda2から秘密鍵を使ってSSH接続する方法がなかなか見つからなかったのでメモしておきます。
Coda2でSFTPサーバーに接続する時にはパスワード欄に鍵マークがあるので、ここをクリックすることでローカルマシンに保存してある秘密鍵を選択できます(Transmitも同じ)。
でも、ターミナルからSSH接続しようとすると秘密鍵を選択する欄がないんですよね。
ネットで検索してやっとヒントを見つけました。
@sirumoto おはようございます!読み込むインタフェースが無いですが、user/.ssh に鍵ファイルが配置されていればそれを利用しようとしますのでパスワード無しでのログインも可能です。SFTPはOKでターミナルからはできない、という事でしたらサポートまでお願いします(の
— パニック・ジャパン(株) (@PanicJapan) December 8, 2012
いや、秘密鍵はそこに置いていないし複数ある場合はどうするんだろう・・・。
@sirumoto おはようございます。特に関係ないという認識です。複数の鍵ファイルや接続先がありますか?.ssh/config ファイルを作成して接続先と鍵ファイルを関連づけることで解決する場合が多いのですが、いかがでしょうか?(の
— パニック・ジャパン(株) (@PanicJapan) December 9, 2012
どうやらローカルの .ssh というディレクトリに config ファイルというのを作成すればいいらしい。
さらに検索して見つけました。
まず Coda2、Mac OS X どちらでも良いのでターミナルを起動します(Coda2 の場合は接続先を「to Localhost」にしておく)。
何も設定していなければ、ログインしているユーザーのホームに入ります。
ここで
$ ls -a
で隠しファイルも含めて一覧を出してみます。
.ssh がありますね。
$ cd .ssh
で移動し、
$ ls
でファイル一覧を出します。
configというファイルがあるのでこれに設定を加えます(なければ作ってください)
configの中身は
Host example(任意の名前でOK) HostName example.com (実際にログインするホスト名) User root (ユーザー名。網元を使っている場合はroot) IdentityFile ~/.ssh/key.pem (ローカルにある秘密鍵の場所
です。()は説明のために書いてあるので実際には必要ありません。
先にリンクしたブログにも詳しい書き方が載っていますので、ご参照ください。
ファイルの場所さえ分かればテキストエディタで修正する事もできますが、vi でもOKです。
ターミナルで
$ vi config
とすると、中身を表示します。
escキーで編集モードに移行しますので、上のテキストをコピペしつつ、必要箇所を修正してください。
なお、秘密鍵の場所ですが、 ~./ssh/ に置いていなくても大丈夫です。
ちなみに、パスを入力するのが面倒な人は秘密鍵のファイルを当該部分にドラッグ&ドロップすることで簡単にパスの指定が可能です。
編集が終わったら escキー でコマンドモードに戻り、保存してviを終了してください。
ここまで終わったら一旦 exitで終了して、Coda2の新規ターミナルに戻ります。
接続先を via SSHにし、サーバとユーザ名だけを入力して接続してみてください。
無事接続できたらOKです。
※以前に「AWS EC2 + 網元でWordPressサイトを構築」で書きましたが、秘密鍵のパーミッションが間違っていると接続できませんのでご注意ください!