【Ubuntu】自宅のマシンにssh接続して開発するためのセットアップメモ
自宅マシンに外出先からssh接続して開発を行おうと思い、サーバ・クライアントをセットアップしました。
この記事はLAN内でクライアントからサーバにssh接続するまでのメモです。WANから自宅LANにつなぐための、ルータやDNSの設定等の話はしていません。
参考にした記事は最後にまとめて記載しております。
想定環境
-
OS: Ubuntu 17.04
ユーザ名: host
ローカルipアドレス: 192.168.1.2
クライアント macbook pro 2012, vaio pro 13 mk2
OS: macOS Sierra 10.12.3, Ubuntu 17.04(Windows10上のVM)
2台のクライアントをセットアップしましたが、今回はmacOSでの解説のみ
セットアップ
クライアントとサーバを行ったり来たりしながら解説します
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の具合に超依存します。テザリングなんかじゃ快適とは程遠い。
その他ファイアーウォール等セキュリティの設定がありますが、今回はここまで。