Linux(fedora)とMacでSSH
今回は備忘録的な感じです。
SSHとは
コンピュータにリモートで暗号化しながらアクセスするツールだそう。パスワードでのログインやRSA暗号を用いたログインもできます。今回はRSAを使用します。
サーバー(fedora)側の導入
一応アップデートを
sudo dnf check-update
sudo dnf upgrade
sshのインストール
sudo dnf install openssh-server
サーバーの設定
/etc/ssh/sshd_configを編集してサーバーの設定を行います。
sudo nano /etc/ssh/sshd_config
エディタ(今回はnano)はvimでもご自由に。*以下、一部抜粋。
#ポートの変更
# Port 22
を
Port 50000 ←ウェルノウンポート(0~1023)でない番号に変更
#rootログインを禁止
PermitRootLogin no
#ログイン時の認証方式 パスワードを禁止してRSAなどの鍵方式に
PasswordAuthentication no
SSHサービスの開始
sudo systemctl start sshd
SSHサービスの自動起動設定
sudo systemctl enable sshd
クライアント(mac)側の設定
RSA鍵の作成
RSAは古い、みたいな話もQiitaで見かけたのですが面倒なのでRSAを使用します。
注意
ユーザネームは"name"に書き換えてます
隠したい場所は***になっています。
以下のコマンドで鍵を作成できます。鍵の長さはデフォルトで2048bitですが、引数「-b」で数値を指定することで、最大4096bitまで増やせます。(ssh-keygen -t rsa -b 4096)今回は面倒なのでデフォルトのままにします。
ssh-keygen -t rsa
これを打つと↓の画面になります。ここでは保存先を聞かれています。デフォルトでいいので、空白のままエンターです。
[name@MacBook-Pro ~ % ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/name/.ssh/id_rsa):
次にパスフレーズの設定です。パスフレーズとは秘密鍵の解除をするものだそうです。パスワードみたいなものらしいです。一応なしでも作れるそう。2回入力が必要です。
[name@MacBook-Pro ~ % ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/name/.ssh/id_rsa):
[Enter passphrase (empty for no passphrase):
[Enter same passphrase again:
鍵は作成されました的なメッセージが表示されます。
Your identification has been saved in /Users/name/ssh/id_rsa Your public key has been saved in /Users/name/.ssh/id_rsa.pub
The key fingerprint is:
SHA256: *** name@MacBook-Pro.local
The key's randomart image is:
+---[RSA 3072]----+
| *************** |
| *************** |
| *************** |
+----[SHA256]-----+
公開鍵をサーバー(fedora)に送信
サーバーのipアドレスを確認(サーバー(fedora)で操作)
sudo dnf install net-tools
[name@fedora:~$ ifconfig
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.5 netmask 255.255.255.0 broadcast 192.168.1.255
***以下省略***
inet 192.168.1.5がipアドレスになります。
fedoraに.sshフォルダを作成(サーバー(fedora)で操作)
mkdir ~/.ssh
rootで作ると権限が変わるかもしれない?のでユーザのままで作成します。
送信(クライアント(mac)で操作)
scpコマンドを使用するとipを指定して特定のフォルダにコピーできます。
scp ~/.ssh/id_rsa.pub name@192.168.1.5:~/.ssh/authorized_keys
~/.ssh/id_rsa.pub は、Mac側でsshの鍵が保存されている場所です。.pubがついてないのは秘密鍵なので絶対に送ってはいけないです。
name@192.168.1.5:~/.ssh/authorized_keys はfedoraのユーザネーム@fedoraのIPです。:以降の~/.ssh/authorized_keysは先ほどの~/.sshフォルダ内に、公開鍵(id_rsa.pub)をauthorized_keysという名前でコピーするという意味だそう。
サーバー(fedora)で鍵が置けたかlsコマンドで確認。
name@fedora:$ ls ~/.ssh
authorized_keys ←が表示されればオッケー
再読みのためにサービス再起動
sudo systemctl restart sshd
起動しているか確認
statusで確認できます。Active: activeとなっていればおっけー。
sudo systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: active (running) since Sun 2024-06-23 00:51:42 JST; 10h ago
***以下省略***
クライアントからサーバーにアクセス
クライアント(mac)での操作
ssh -p 50000 name@192.168.1.5
-pはポート指定で、先ほど設定した値を、nameにはfedoraのユーザ名をipにはサーバのアドレスを入力します。
パスフレーズを設定した場合は聞かれるので入力します。
sshからログアウト
[name@fedora:~$ exit
ログアウト
Connection to 192.168.1.5 closed.
参考
この記事が気に入ったらサポートをしてみませんか?