0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita全国学生対抗戦Advent Calendar 2024

Day 16

外部からSSH接続できる理想環境を作りたい!!(Raspberry Pi)

Posted at

雑談

最近、色々あって家にいないことが多くなりました。
ということで、Raspberry Piを外部から接続したいですね。

はい、やりましょう。そして、今回も備忘録的なものです。

内容

  • 自分の鍵ペアができるようにする
  • SSHを鍵認証でログインできるようにする
  • 外部にSSHポートを開放する

キーファイルの作成

まずローカルでキーファイルを置くディレクトリを作ります。

$ cd ~/.ssh/
$ ssh-keygen -t rsa

(今回自分は.ssh 直下に秘密鍵を置いておいてしまいましたが、ディレクトリ分けしておいて、後々増やす時に、ややこしくないようにするべきだったなぁと)

ま、コピーすればいいか。

これで.ssh配下に秘密鍵のid_rsaと、公開鍵のid_rsa.pubが作成されます。
そして今作成したキーペアの内、公開鍵のid_rsa.pubを Raspberry Pi に送ります。

$ scp ./id_rsa.pub pi@raspberrypi.local:~

pi@raspberrypi.localの部分は自分用に変更してやってください。
パスワードを求められたら、入力してください。

これで、作成した公開鍵がRaspberry Piにコピーされました。

Raspberry Pi側のsshの設定

ssh(Password 認証)で Raspberry Pi に接続し、次に ssh の鍵を管理する.sshディレクトリを作成します。

$ ssh pi@Raspberrypi.local
$ mkdir ~/.ssh
$ chmod 700 .ssh
$ cd .ssh
$ cat ../id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys
$ rm -fv ../id_rsa.pub

簡単なコマンドの説明

  • ssh pi@Raspberrypi.local
    Raspberry PiにSSH (Secure Shell) を使用して、Raspberry Pi にリモート接続します。

  • mkdir ~/.ssh
    ホームディレクトリ (~) に .ssh ディレクトリを作成します。

  • chmod 700 .ssh
    .ssh ディレクトリのアクセス権を所有者のみアクセス可能に変更します。

  • cd .ssh
    .sshディレクトリに移動-

  • cat ../id_rsa.pub >> authorized_keys
    ../id_rsa.pub ファイル(公開鍵)を読み取り、その内容を .ssh/authorized_keys ファイルに追記します。

    authorized_keys ファイルに公開鍵を登録することで、その鍵を持つクライアント(あなたの PC)が Raspberry Pi にパスワードなしで SSH 接続できるようになります。

  • chmod 600 authorized_keys
    authorized_keys の権限を所有者のみ読み書き可能に制限し、セキュリティを強化します。

  • rm -fv ../id_rsa.pub
    id_rsa.pub ファイル(公開鍵)を削除します。

次に/etc/ssh/sshd_configの中を編集します。

$ sudo nano /etc/ssh/sshd_config

以下の3つの部分を変更または、追記しました。

PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys
HostKeyAlgorithms=+ssh-rsa
PubkeyAcceptedAlgorithms=+ssh-rsa

編集ができて保存したら、テストしてみましょう

$ which sshd
$ /usr/sbin/sshd -t
sshd: no hostkeys available -- exiting.

$ sudo /usr/sbin/sshd -t

sudoつけたら行けた。

一応exitで、再起動しました。

$ sudo ifconfig en0 down
$ sudo route flush
$ sudo ifconfig en0 up

完了したら自分の場合は、cloudflareにレコードを追加したので以下の文で接続できました。

$ ssh ユーザー名@cloudflareに登録したドメイン -p ポート番号

でけた🤩

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?