【Ubuntu】自宅のマシンにssh接続して開発するためのセットアップメモ

自宅マシンに外出先からssh接続して開発を行おうと思い、サーバ・クライアントをセットアップしました。

この記事はLAN内でクライアントからサーバにssh接続するまでのメモです。WANから自宅LANにつなぐための、ルータやDNSの設定等の話はしていません。

参考にした記事は最後にまとめて記載しております。

想定環境

セットアップ

クライアントとサーバを行ったり来たりしながら解説します

1. apt-get update (サーバ

sudo apt-get update

2. sshのインストール (サーバ

sudo apt-get install openssh-server

3. sshキーの生成 (クライアント

ssh-keygen

エンターキー3連打

4. 公開鍵をサーバに送る (クライアント

scpを利用してファイルを送信 scp ~/.ssh/id_rsa.pub user@192.168.11.2:~

user@192.168.11.2の部分は手元の環境に合わせて置き換える。

5. 送られてきた公開鍵をauthorized_keysに登録する (サーバ

もし~/.sshが存在していなかったら mkdir ~/.ssh

authorized_keysファイルをつくる touch ~/.ssh/authorized_keys

authorized_keysに公開鍵を追記 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

6. sshd_configの設定 (サーバ

必要に応じてアクセス権の変更 sudo chmod a+w /etc/ssh/sshd_config

sshd_configを編集 vi /etc/ssh/sshd_config

Port XXXXX # ポートを22以外に変更
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no

sshdの再起動 sudo /etc/init.d/ssh restart

7. クライアントからサーバへ接続できるか確認 (クライアント

sshd_configに設定したPortが44444であれば ssh -p 44444 user@192.168.11.2

接続できなかった場合、サーバ側でauthorized_keysにちゃんと公開鍵が追記されているかとsshd_configに間違いがないかを確認。sshd_configを修正する場合はsshdの再起動を忘れない。

以上

「自宅に開発マシンおいて外から繋いで開発すれば、マシンも作業場所も選ばないじゃん」とおもってセットアップしたんですが、wi-fiの具合に超依存します。テザリングなんかじゃ快適とは程遠い。

その他ファイアーウォール等セキュリティの設定がありますが、今回はここまで。


参考

SCPコマンドでローカルのファイルをサーバにアップ&サーバ上のファイルをDL

そこそこセキュアなlinuxサーバーを作るLinux

サーバに新たなSSH公開鍵を追加する