Mac
CentOS
SSH
さくらのクラウド

さくらのクラウド > MacのターミナルからSSH接続 macOS→CentOS

More than 1 year has passed since last update.

ssh

環境

さくらのクラウド
OS:CentOS 7.4

以下を参考にさせていただきました。
【初心者向け】さくらのクラウドにターミナルからSSH接続するための手順&解説【macOS→CentOS】 - Qiita

下記はTerminalで作業する。

Server側設定

ssh login
$ ssh root@xxx.xxx.xxx.xxx

ユーザーを追加

# adduser hoge
# passwd hoge

ユーザーのフォルダのパーミション変更

# cd hoge
# chmod 700 hoge

ここで一度ログアウトする。
# exit

Mac側設定

カレントフォルダ移動&確認
$ cd
$ pwd

/Users/hoge

公開鍵認証の設定(mac側)

「.ssh」フォルダを作成
$ mkdir .ssh

カレントフォルダを移動
(/Users/hoge/.ssh フォルダに入る。)
$ cd .ssh

認証用の鍵を作成

$ ssh-keygen -t rsa

以下のように確認が表示される。
参考サイト同様にsakura_rsaで進める。

Enter file in which to save the key (/Users/username/.ssh/id_rsa): 

       ↓

Enter file in which to save the key (/Users/atsu/.ssh/id_rsa): sakura_rsa

パスワードは何も入力せずenterを2回。
+---[RSA 2048]----+から始まるキラキラしたAAが表示されたら成功。

これで「sakura_rsa」と「sakura_rsa.pub」という2つのファイルができた。

リモートコピー

rsaファイルをsakuraに送る。
:~ :転送先のディレクトリの指定を忘れがちなので注意。

$ scp sakura_rsa.pub hoge@xxx.xxx.xxx.xxx:~

パスワードを聞かれるので入力。
「100% 398 0.4KB/s 00:00 」みたいなのが表示されれば成功。

サーバー側

公開鍵認証の設定

ssh用ユーザーでsshログイン
$ ssh hoge@xxx.xxx.xxx.xxx

SCPした鍵が届いているか確認。
$ ls

sakura_rsa.pub が存在する事を確認。

ホームディレクトリ配下に「.ssh」ディレクトリを作成し鍵を保存する。
パーミッションを700に変更。

$ mkdir .ssh
$ chmod 700 .ssh

.sshディレクトリに「authorized_keys」という名前で移動する。
authorized_keysのパーミッション変更。

$ mv sakura_rsa.pub .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys

sshd_configの編集

sshd_configを編集するにあたりスーパーユーザーになる。
$ su

「sshd_config」という設定ファイルを書き換える。
# vi /etc/ssh/sshd_config

以下の項目について設定する。

ポート番号

#Port 22
↓
Port xxxx

ポート番号は1024以上、49513~65535が望ましい。今回は「49513」を使う。

rootログイン不可

#PermitRootLogin yes
↓
PermitRootLogin no

鍵認証設定。

#PubkeyAuthentication yes
↓
PubkeyAuthentication yes

CentOS7.4には以下は存在しなかったが、以下もあれば

#RSAAuthentication yes
↓
RSAAuthentication yes

パスワードによるログイン不可

PasswordAuthentication yes
↓
PasswordAuthentication no

ここまで変えたら保存する。

sshdの再起動

再起動を行う。
# systemctl restart sshd.service

状態を確認する
# systemctl status sshd.service
以下を確認。

  • Active: active (running)」
  • Server listening on :: port 49513.

ファイアウォールの設定

ファイアウォールの設定を変更。

# vi /usr/lib/firewalld/services/ssh.xml

port protocol="tcp" port="22"/ の「22」を「49513」に書き換える。

ファイアウォール再起動

# systemctl reload firewalld.service

SSH接続できるか確認

ターミナルをもうひとつ開いて

$ ssh hoge@xxx.xxx.xxx.xxx -i ~/.ssh/sakura_rsa -p 49513

[hoge@sakura ~]$ と表示されれば成功。

SSH接続用短縮コマンドの作成

上記まででSSH接続できるようになったが以下も作成すれば便利。(参考サイトのnulltypoさんに感謝!)

mac側での作業

ターミナルを新しく開き、
ホームディレクトリ(~/)配下に.sshディレクトリ以下にconfigファイルを作成する。
$ vi ~/.ssh/config

(/Users/hoge/.ssh/config)
configの中身にはいかを記述。

Host sakura
    Hostname xxx.xxx.xxx.xxx
    User hoge
    Port 49513
    IdentityFile ~/.ssh/sakura_rsa
    IdentitiesOnly yes

IdentitiesOnly:これをyesにしておくと他の設定を追加した時にエラーになりにくいとの事。

$ ssh sakura
[hoge@sakura ~]$ と表示されれば成功。

謝辞

以下を大いに参考にさせていただきました。ありがとうございました。
【初心者向け】さくらのクラウドにターミナルからSSH接続するための手順&解説【macOS→CentOS】 - Qiita