Macのターミナルでssh接続

情シス

Windows端末でTera Termでssh接続をしている。
しかしMac端末では、Tera TermをインストールしようとしたらMac版のTera Termがなかったため、標準のAppであるターミナルを使用してssh接続することとなりますので、メモを残します。

⭐️ .ssh フォダーが存在している。

方法

Macのターミナルで メニューバー → シェル → 新規リモート接続の順に選択

  • 「サービス」 → セキュアシェル(ssh)を選択。
  • 「サーバ」 → +をクリックすると以下のように接続先のIPアドレスの入力が促されるので、入力する。

パーミッションを設定する

パーミッションが緩すぎると警告が
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

そこでMacのターミナルから下記のコマンドでパーミッションを厳しくしておくと解決します。

$ cd .ssh
$ chmod 600 ID_rsa.html

configファイルを作成して設定をまとめておこう

.sshディレクトリ直下にconfigファイルを作成して、その中に接続先のホスト名やユーザー名、秘密鍵ファイルのパス等を全て記載する

configファイル作成

ホスト名(or IPアドレス)example1.com
ユーザー名testuser
秘密鍵のパス~/.ssh/id_rsa
ポート番号22

configファイルの作成と記述

configファイルの作成と同時に、ファイルに中身を記載していきます。

その前に念の為、既にconfigファイルが無いか確認しましょう。

Macのターミナルを開いて以下のコマンドを実行します。

$ ls -la ~/ssh

configが無ければOK、あれば追記という形になりますが覚えてなかったconfigファイルがあるようであればそれは果たして残しておくべきものなのかどうかしっかり確認して下さい。

$ vi ~/.ssh/config

viコマンドで新しく.ssh直下にconfigというファイルを作成し、同時に編集していきます(正確に言うと保存するまではまだ作成されていません)。

configファイルに以下の情報を書き込んで行きます。

Host example1.com
	HostName example1.com
	Port 22
	User testuser
	IdentityFile ~/.ssh/id_rsa
	IdentitiesOnly yes
	TCPKeepAlive yes
	ServerAliveInterval 60
	ServerAliveCountMax 10

全て「設定名 値」という形です。

Host実際に接続する時に使う名前(自由に決めてOK)
HostNameVPSのホスト名やIPアドレス
PortSSHのポート番号
UserVPSのユーザー名
IdentityFile秘密鍵の絶対パス
IdentitiesOnlyIdentityFileで指定した秘密鍵に限定するかどうか(yes/no)
TCPKeepAlive接続が有効であるか確認通知を出すかどうか(yes/no)
ServerAliveIntervalサーバーから応答が無い時タイムアウトする秒数
ServerAliveCountMaxサーバーから応答がない時応答を求める回数

configファイルは誰彼構わず編集されたら困るので、パーミッションを変えておく。

$ chmod 600 ~/.ssh/config

これで準備OKです。

$ ssh example1.com

接続はこれだけ、めっちゃ短くできました!

Enter passphrase for key '/Users/ユーザー名/.ssh/id_rsa':

最後に秘密鍵のパスフレーズを聞かれるので、入力してEnterで接続完了

接続する

コマンドで接続の場合

$ ssh ユーザー名@ホスト名 -i ~/.ssh/秘密鍵までのパス -p ポート番号
ssh -i /Users/piao/.ssh/ID_rsa.html ✖︎✖︎✖︎@server.jp -p 22
Enter passphrase for key '/Users/user/.ssh/ID_rsa.html':  → パスワードを入力する

コメント