【超小ネタ】CircleCIへのssh接続にハマった

 

GitHubのCIにCircleCIを使っていて、途中でjobが失敗した時CIの中身見たくてsshで接続したくなりますよね💡
例えば、「ディレクトリ配置うまくいってるかなー」「このパッケージちゃんとインストールされてるかな」とか… 🤔

その時、わたしがハマったポイントとしては、、、

\ ssh接続に使うid_rsaはGitHubのもの /

ということでした!

 

1.Rerun Job with SSHする

 

2. 出力されたIPにssh接続する 👈ここでハマった

↑に表記されている通り$ ssh -p 64535 [IP]とするとpermission deniedになってしまい、ssh接続できずハマっていました。

$ ssh -p 64536 [IP]
The authenticity of host '[IP]:64536 ([IP]:64536)' can't be established.
ED25519 key fingerprint is SHA256:xxxxx.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[IP]:64536' (ED25519) to the list of known hosts.
user@[IP]: Permission denied (publickey).

 

私のローカルでは、GitHubのid_rsaを~/.ssh/id_rsa_githubに置いてます。
そのため-i ~/.ssh/id_rsa_githubで指定してあげるのが正解でした😇

ssh -i ~/.ssh/id_rsa_github -p [発行されたport] [発行されたip]

 

Use the same SSH public key that you use for your VCS-provider (e.g., GitHub).
と親切に説明してくれてるのを、素直に受け止めればこんなことにはならなかったでしょう…

 

初めてのラズパイ~キーボード,マウスなくたってssh接続でどうにかする編~

先週、オープンソースカンファレンス名古屋にいってきました!

そこで、なんとラズパイをいただきました!!

ただ、、、後で知ったんですが学生限定だったらしく…ごめんなさい!

 

っということで、早速ラズパイ始めようと思い、
ラズパイ知識0の状態から、
ラズパイの導入→ssh接続するまでを書きたいと思います。

参考にしたサイト:
– https://www.d4af.com/post/2017/10/raspberry-pi-headless-setup/
https://blog.bnikka.com/raspberrypi/raspberrypi-install.html
http://masatolan.com/raspberry-pi/raspberry-pi-security/
https://qiita.com/mascii/items/0d1a280ac58ed8f6f999

 

準備

今回使うものリスト
– ラズパイ(多分、Raspberry Pi Type A)
– SDカード(8GB)
– 電源アダプター
– HDMI(画面とラズパイをつなぐ)
– 無線LAN(USBポートでさせるタイプ)
↑ ラズパイ3・ラズパイZeroWでは標準搭載されているらしい。
– Mac(SDカードに焼く& ssh接続用PC)

 

 

1.SDカードにOSとなるraspbianを焼く[Mac]

参考:https://qiita.com/shippokun/items/9070fc58f69d8c063e44

 

1-1. 以下の公式サイトより、Raspbian(OS)をダウンロードします。

私自身、ラズパイて最初からOS入ってるものだと勘違いしていました。
導入するOSの種類を選べるのも面白い!!!
ダウンロードに結構な時間がかかりました。
今回はすっごい時間がかかりましたが、
「Raspbian Buster with desktop and recommended software」
にしました。
https://www.raspberrypi.org/downloads/raspbian/

 

1-2. SDにRaspbian(OS)を焼く

書き込む前にフォーマットする必要があります。
今回は、ターミナルで行います。(ディスクユーティリティよりGUIでも行えます。)

MacにSDカードを差す前の状態

$ diskutil list
/dev/disk0 (internal):
...

/dev/disk1 (synthesized):
...

 

SDカード差し込み後(/dev/disk2が増えている=これがSDカード)

$ diskutil list
/dev/disk0 (internal, physical):
...

/dev/disk1 (synthesized):
...

/dev/disk2 (external, physical):
...

 

SDカードをアンマウントして、データを削除する。
「デバイス名」は、つけたい名前でokです!ただし大文字でないとエラーになったかと思います。
ここでdisk1とか選んじゃうとMacのデータを消しちゃったりするので注意してください。

$ diskutil unMountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
$ diskutil eraseDisk MS-DOS [デバイス名] /dev/disk2

SDカードをアンマウントして、OSイメージをコピーする。

$ diskutil unMountDisk /dev/disk2
$ sudo dd if=/Users/[ユーザ名]/Downloads/[OSイメージ名] of=/dev/rdisk2 bs=1m

 

2. SDカードにssh接続用ファイルを作成[Mac]

デフォルトのままではssh接続が無効なので、有効化させます。

/boot以下にsshという名前の空ファイルを作成するだけ!

$ cd /Volumes/boot
$ touch ssh

 

3. SDカードにWi-Fi設定ファイルを作成[Mac]

デフォルトのままではWi-Fi接続情報がないため、ssh接続もできません。

そこでWi-Fi情報を設定します。

/boot以下にwpa_supplicant.confという名前のファイル作成する。

/boot/wpa_supplicant.conf

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="<SSID>"
    psk="<WPA2のPSK>"
    key_mgmt=WPA-PSK
}

 

psk以下は、wifiのパスワードそのままでもいけますが、
セキュリティ的に暗号化したほうがいいので、
http://jorisvr.nl/wpapsk.htmlを使って作成したものを設定したほうがいいそうです。

 

3. ラズパイにSDカードを差して起動[ラズパイ]

アンテナの確認だけなので、キーボード・マウスなくても大丈夫です。

raspi_start_view

 

Wi-Fiがうまく繫ればラズパイデスクトップ上のアンテナがこんな感じになります。

wifi_on

 

ちなみに繋がっていない場合は、こんな感じです。

wifi_off

 

4. ラズパイのMacアドレスとIPを見つける[Mac]

二つの方法があります。

1.ルータの設定画面
2.arp-scanコマンドより

 

1. ルータの設定画面の場合

Buffaloの場合は、http://192.168.11.1/login.htmlでログイン後、
ip_config
詳細設定>LAN>DHCPリースより、
自分がWi-Fiに接続しているMacアドレス以外のものがあればそれだと推測する方法があります。

この画面で手動割り当てにしておくと、
固定IP化されて毎回IP探す必要がなくなって楽です!

 

2. arp-scanコマンドよりの場合

$ sudo arp-scan -l
Password:
Interface: en0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.5 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.11.1	xx:xx:xx:xx:xx:xx	BUFFALO.INC
192.168.11.2	yy:yy:yy:yy:yy:yy	Logitec Corporation

537 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.5: 256 hosts scanned in 1.858 seconds (137.78 hosts/sec). 3 responded

今回、ラズパイのWi-FiドングルにLogitecを使っていたので、

192.168.11.2だというが想定できます。

 

5. Macからssh接続する[Mac]

4で推定したIPにMacからssh接続します。

ssh pi@192.168.11.2
pi@192.168.11.2's password:

デフォルトのユーザー名: pi
デフォルトのパスワード: raspberry

あとで変更します!

 

6. ssh接続情報を変更する[Mac]

デフォルトのままだとなんか怖いので変更しましょう。

●rootのパスワードを変更する

$ sudo passwd root
新しいパスワード:
新しいパスワードを再入力してください:
passwd: パスワードは正しく更新されました

 

● ポート番号を変更する
5行目くらいにあるポートの設定を変更する

pi@raspberrypi:~ $ sudo vi /etc/ssh/sshd_config
...
# possible, but leave them commented.  Uncommented options override the
# default value.

Port 12345  #多分、元は Port 22

 

● 繋がるか確認する。

$ ssh -p 12345 pi@192.168.11.2
pi@192.168.11.2's password:

感想

Wi-Fiの設定とか初めていじりました!
IP固定化とか、なんかインフラエンジニアっぽいくってかっこいい^^!!

手持ちのレゴでケース適当に作ったけど、適当すぎる。。。
lego_case