こんにちは。
先週インフルエンザB型になり、1週間会社休んで有給が吹き飛んだあかぎれです。お陰で東京の大雪の影響を全く受けなかったんで結果オーライでしょうか?
先週からめっちゃ寒くて死にそうでした。私がいつも使っている母艦のiMacは間取りの関係でダイニングキッチンに設置していますが、うちは安アパートなのでダイニングキッチンは玄関と直結。冷気が半端ないので今の季節はiMacどころかダイニングに留まることすらちょっと厳しい状態。
なので、7年前に買ってそろそろ挙動が怪しいMacBook Proをクリーンインストールし、画面共有やらSSH接続やらを駆使してiMacの環境へ接続してLaravelをベッドの中でぬくぬくとお勉強しようと努力した結果、ネットワーク周りのお勉強にもなったので共有しようというネタになります。
私のITスキル
ちょっとパソコンに詳しいレベルの一般人とお考えください。以前はPHPとかJavaScriptでゴリゴリWebアプリ作ってましたが7年のブランクがあります。React?Laravel?なにそれ?
※Linuxの最低限の操作ができる前提では書いてます
我が家のネットワーク構成(略図)
大前提となるので今回の話に関係する部分だけ晒します。
※VirtualBoxはvagrantを使ってます。
1. iMacの画面共有をオン
とりあえずMacBook ProからiMacを操作したかったので、画面共有を有効にしました。同一ドメインであればボタン一つで設定完了です。
システム環境設定→共有→「画面共有」にチェック
※この図の通りファイル共有にもチェックを入れたので、Finderのサイドバーの共有ペインに同一ドメイン上のPC一覧が表示されますので、そこからボタン一つで画面共有ができます。
2. iMacにSSH接続できるようにする
基本的に設定不要です。コマンドから
MacBook:~ akagire$ ssh username@domainname
って叩いてあげれば、最初だけSSHのセキュリティ警告が表示されますがすんなりとつながります。つながったのですが、私の環境では日本語ファイル名が?に化けちゃいました。
iMac:~ akagire$ ls -l /Users/akagire/Pictures total 99999 drwxr-xr-x 75 akagire staff 2550 1 5 20:00 gpx drwxr-xr-x 814 akagire staff 27676 1 5 20:07 jpg drwxr-xr-x 4 akagire staff 136 1 28 2017 psd drwxr-xr-x 15 akagire staff 510 1 21 08:45 raw drwxr-xr-x@ 11 akagire staff 374 1 26 08:29 iphoto.photoslibrary -rw-r--r--@ 1 akagire staff 349912 7 20 2015 ????.png #化けてる
いろいろ調べたところ、Bashの環境変数がおかしいっぽい。てことで確認。
iMac:~ akagire$ echo $LANG #なにも帰ってこない iMac:~ akagire$ locale LANG=C LC_COLLATE=C LC_CTYPE=C LC_MESSAGES=C LC_MONETARY=C LC_NUMERIC=C LC_TIME=C LC_ALL=
iMacの環境言語は日本語なんだけどなぁ…まぁよくわからんので、付け焼刃的に
iMac:~ akagire$ export lang=ja_jp.UTF-8
を実行しましたが、やはり日本語が化ける。
iMac:~ akagire$ echo $LANG #やっぱりなにも帰ってこない
というか、環境設定が変わってなかった。なぜ…
てことで、iMacの.bash_profileに書いてみた。
iMac:~ akagire$ vi ~/.bash_profile #行末に以下の行を追記 export LANG=ja_JP.UTF-8 :w :q iMac:~ akagire$ source ~/.bash_profile iMac:~ akagire$ echo $LANG ja_JP.UTF-8 iMac:~ akagire$ locale LANG="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_CTYPE="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_ALL= iMac:~ akagire$ ls -l /Users/akagire/Pictures total 99999 drwxr-xr-x 75 akagire staff 2550 1 5 20:00 gpx drwxr-xr-x 814 akagire staff 27676 1 5 20:07 jpg drwxr-xr-x 4 akagire staff 136 1 28 2017 psd drwxr-xr-x 15 akagire staff 510 1 21 08:45 raw drwxr-xr-x@ 11 akagire staff 374 1 26 08:29 iphoto.photoslibrary -rw-r--r--@ 1 akagire staff 349912 7 20 2015 小金井のお魚.png #化けなくなった!
うまくいきました。
3. iMacのVirtualBox上で動いてるゲストOSにもSSHで接続したい
vagrant前提なのであしからず。
a. ゲストOSをネットワークに参加させる
qiita.com
こちらを参考にしました。横着者なので、ブリッジするインタフェースは未指定です。
VagrantFileを修正します。
# ゲストOSのNAT設定。vagrant initのデフォルト。 # これだけでVirtualBoxのネットワーク設定してくれるからvagrant便利! config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" # 追記した行。これでうちのドメインのIPがDHCPで勝手に割り当てられる config.vm.network :public_network
修正したらvagrant up。qiitaの記事の通りどれにするか聞いてきます。
==> default: Clearing any previously set network interfaces... ==> default: Available bridged network interfaces: 1) en1: Wi-Fi (AirPort) 2) en0: Ethernet 3) en2: Thunderbolt 1 4) en3: Thunderbolt 2 5) bridge0 6) p2p0 7) awdl0 ==> default: When choosing an interface, it is usually the one that is ==> default: being used to connect to the internet. default: Which interface should the network bridge to?
1を入力してエンター(ッターン
んでホストOSからSSHで繋いでIPをチェック。
iMac:centos akagire$ vagrant ssh … [vagrant@localhost ~]$ ip addr show | grep inet #略 inet 192.168.1.16/24 brd 192.168.1.255 scope global dynamic eth1 #略
うちのドメインは192.168.1.1/24なのでちゃんとIPが振られました。
b. MacBookからvagrantなCentOSへSSH接続
ここからが毎回ハマるやつ。この辺がうまく行かなくてパソコン初期化するたびにgit cloneが動かなくて毎回苦労します。(バカ
まずは単純にsshでつなごうとして怒られます。
macbook: ~ akagire$ ssh vagrant@192.168.1.16 Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
SSHの公開鍵をvagrant環境に登録してないので当たり前です。まずは、MacBookで鍵を作成しましょう。
macbook:~ akagire$ cd ~/.ssh macbook:.ssh akagire$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/akagire/.ssh/id_rsa): mother_vagrant_rsa #にしました。 Enter passphrase (empty for no passphrase): #今回はローカルで使うので未設定でOKでしょう… Enter same passphrase again: Your identification has been saved in mother_vagrant_rsa. Your public key has been saved in mother_vagrant_rsa.pub.
鍵ができました。公開鍵をコピーします。
macbook:.ssh akagire$ cat mother_vagrant_rsa.pub | pbcopy
iMacからvagrant sshしてauthorized_keysを編集
[vagrant@localhost ~]$ vi ~/.ssh/authorized_keys # 略 # 行末にコピーした公開鍵を貼り付け ssh-rsa AAAA...略... akagire@macbook.local :w :q
これで公開鍵の登録が終わったので、もういっちょSSHで繋いでみましょう
macbook:~ akagire$ ssh vagrant@192.168.1.16 Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
はい、使う鍵を指定しましょう…。私はssh_configに書きました。
Host mother-vagrant HostName 192.168.1.16 IdentityFile ~/.ssh/mother_vagrant_rsa User vagrant
もう一回トライ。
macbook:~ akagire$ ssh mother-vagrant Last login: Fri Jan 26 07:42:56 2018 from 192.168.1.8 [vagrant@localhost ~]$
できました(゚∀゚)
気になる人は、vagrantでも環境変数の設定とかしたらいいと思います。私はしません。多分日本語ファイルを扱わないので。
これでようやくオフトゥンのなかで糞寒い部屋に置いてあるiMacへ自由につながりました。
4. ゲストOSのLaravelをMacbookでも見れるようにする
ゲストOSにIP割当されてるんだからとChromeのURLに192.168.1.16:8000に繋いだら接続が拒否されてしまいました…ってことでググる。
imamotty.hatenablog.jp
なるほどこんなのわかるかよ(分かれよ)。ってことで
php artisan serve --host 0.0.0.0
無事、192.168.1.16:8000でアクセスできました。
これで動作確認もオフトゥンのなかでできるようになりました。あとはぬくぬくお勉強します。
さて、東北旅行のエントリーの続き…
それでは。