日々是勉強

機械学習やもろもろ勉強したことに関するゆるい備忘録

Ubuntu18.04のPCにLANからSSH接続する

タイトルの通り、UbuntuマシンにSSH接続できるようにセッティングしたため備忘録として流れを残しておきます。 サーバー側のスペックは以下のとおりです。

また、クライアント側は以下のとおりです。

  • PC: MacBookPro 2019
  • OS: macOS Catalina 10.15.2

流れは以下のとおりです。

1. サーバー側)sshのインストール

まず以下のコードにてサーバー側にsshをインストールします。

sudo apt-get update
sudo apt-get install openssh-server

2. クライアント側)sshキーの生成

クライアント側にて以下で秘密鍵と公開鍵を作成します。 ざっくりとしか理解していませんが、ssh接続ではサーバー側に公開鍵を設置し、クライアント側に持っている秘密鍵とを照らし合わせてセキュアな接続を実現しているそうです。なので、くれぐれも秘密鍵は公開などはせぬようお気をつけ下さい。

ssh-keygen -t rsa -b 4096

なお、秘密鍵を複数持っておきたいという場合には、以下の処理を追加で行います。

touch ~/.ssh/config
vim ~/.ssh/config

configファイル内に以下を記入

Host connetion2ubuntu(適当な名前をつける)
    HostName IP or hostname
    Port xxxxx
    IdentityFile ~/.ssh/id_rsa (秘密鍵のファイルパス)
    User hoge

3. クライアント側)公開鍵をサーバに送付

いろいろな記事を読むとSCPを利用してファイルを送信するのがおすすめなようです。(以下のコードはファイル名、ユーザ名、IPアドレス等々変更が必要です。) 私は当初よくわからなかったためUSBメモリでわざわざ受け渡ししました。

scp ~/.ssh/id_rsa.pub user@10.0.0.1:~/Desktop/

4. サーバー側)公開鍵の登録

サーバー側で以下を実行してみます。

ls ~/ -a

ここで.sshが表示されればOKです。なければ、mkdir ~/.sshにてフォルダを作成します。 一つだけ公開鍵を登録する場合はそのままこのフォルダにid_rsa.pubを保存します。 そうでない場合はauthorized_keysファイルを作成し、そこに公開鍵を追記します。

touch ~/.ssh/authorized_keys
cat ~/Desktop/id_rsa.pub >> ~/.ssh/authorized_keys

5. サーバー側)sshd_configの設定

重要なセキュリティの設定です。

sudo vim /etc/ssh/sshd_config
#以下のあたりを設定
sudo /etc/init.d/ssh restart
  • Port デフォルトから任意のポートに変更
  • PermitRootLogin no
  • AuthorizedKeysFile .ssh/authorized_keys
  • PasswordAuthentication no
  • OermitEmptyPasswords no
  • ChalelngeResponseAuthentcation no

6. クライアント側)アクセステスト

最後に、クライアント側から接続テストをしてみます。 configファイルを使わない場合:

ssh username@IPaddress -p portnumber

configファイルを使う場合:

ssh connection2ubuntu

これであとは秘密鍵作成時のパスワードを聞かれると思いますので、それを入力すればログインすることが可能なはずです。
今度はWANからの接続について備忘録を書きます。