Ubuntu18.04のPCにLANからSSH接続する
タイトルの通り、UbuntuマシンにSSH接続できるようにセッティングしたため備忘録として流れを残しておきます。 サーバー側のスペックは以下のとおりです。
- OS: Ubuntu18.04.3LTS
- CPU: Intel Core i9-9960X
- GPU: NVIDIA Geforce RTX 2080Ti
- RAM: 48GB
また、クライアント側は以下のとおりです。
- PC: MacBookPro 2019
- OS: macOS Catalina 10.15.2
流れは以下のとおりです。
- 1. サーバー側)sshのインストール
- 2. クライアント側)sshキーの生成
- 3. クライアント側)公開鍵をサーバに送付
- 4. サーバー側)公開鍵の登録
- 5. サーバー側)sshd_configの設定
- 6. クライアント側)アクセステスト
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からの接続について備忘録を書きます。