見出し画像

Linux(fedora)とMacでSSH

今回は備忘録的な感じです。


SSHとは

Secure Shell(セキュア シェル、SSH)は、暗号認証技術を利用して、安全にリモートコンピュータと通信するためのプロトコルパスワードなどの認証を含むすべてのネットワーク上の通信が暗号化される。

Secure Shell

コンピュータにリモートで暗号化しながらアクセスするツールだそう。パスワードでのログインや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.

参考


この記事が気に入ったらサポートをしてみませんか?