macOSからLinux(Debian 10)へssh接続する

設定していて、参考の記事がいまいち分かりづらいなぁというか流れがよくわからん…(´・ω・`)って思ったので自分用備忘録。
多分VirtualBoxとかでも使えるのでは…(なんて思ってる)

これから学ぶmacOSターミナル

前提

  • さくらVPSLinux(Debian10)をカスタムインストール
    • sudoをインストール済み
  • macOS Mojave(10.14.6)

1.Linux側の準備

  1. sshをインストール(インストール済みだったらスキップ)
$ apt install ssh

上記でパーミッションでエラーが出た場合はsudoを使う

$ sudo apt install ssh
  1. ~/.ssh ディレクトリを作成して、権限を700に変更。
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

chmod でエラーが出たらsudoつけるて実行すると変更できます。 (permission deinedとか言われたらとりあえずsudoつける)

ちなみにファイルパーミッションよくわからんっていうときはこちらを参考にするとわかりやすいかも。

Unixのコマンドリファレンス

web.tbgu.ac.jp

  1. パスワードで認証できるようにしておく
$ sudo vi /etc/ssh/sshd_config

...
PasswordAuthentication yes
# ↑がnoになっていたらyesに変更する

:q

$ sudo systemctl restart sshd
# sshを再起動

2. macOS側の準備

  1. 秘密鍵RSA鍵)を作ります!(すでにある場合はスキップしても大丈夫です!多分…)
$ ssh-keygen -t rsa

passphraseを2回聞かれると思います。何も入力せずリターンしても問題ないです。

  1. 鍵が作成されてるか確認する
$ ls ~/.ssh/
id_rsa      id_rsa.pub

こんな感じで作られてたらOK。
id_rsa.pub秘密鍵

(´-`).oOGithubとか複数のVPS使い分けたりとかする場合はちゃんと都度別々に鍵作ったほうがいいかもなぁ
SSH で複数の秘密鍵を使い分けるいくつかの方法 - Ellinikonblue.com Weblog

  1. 作った鍵をLinuxに送る
$ ssh-copy-id -i ~/.ssh/client_rsa.pub サーバー側のユーザー名@サーバーのアドレス
Are you sure you want to continue connecting (yes/no)? yes
サーバー側のユーザー名@サーバーのアドレス's password:
# ↑初回だけパスワード認証
    Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'サーバー側のユーザー名@サーバーのアドレス'"
and check to make sure that only the key(s) you wanted were added

メッセージで「ssh 'サーバー側のユーザー名@サーバーのアドレス' でログインできるか試してみぃ」って言われてるので、tryしてみます。

$ ssh 'サーバー側のユーザー名@サーバーのアドレス'
Linux ***** 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2 (2020-04-29) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Jun  3 09:50:24 2020
user@device:~$

こんな感じのメッセージ出てきたら接続成功です。

ポート変えておきましょう

デフォルトのポートのままだとまずいので、適当なポートに変更しておく。
簡単な攻撃対策。
ただどんな番号でも良いわけではなさそうなので、ウェルノウンポート(well-knownポート)とは - IT用語辞典 e-Words を参考に変更します。

Linux側のsshd_configを編集

$ sudo vi /etc/ssh/sshd_config

...

# Port 22
Port 5000

:q

$ sudo systemctl restart sshd
# sshを再起動

mac側から接続を確認

$ ssh -p 5000 (サーバのユーザ名)@(サーバのアドレス)

これで接続できる(はず)

参考

ssh接続を鍵認証で行う

www.tooyama.org

Mac OS X から Linuxサーバ へ、RSA 鍵を用いて SSH 接続する - joker8phoenix's diary

joker.hatenablog.com