2018年2月25日日曜日

Pythonista3のSSH設定でハマったこと

もともとMacBook ProでSSHTunnelコードを書いていた自分としては、ぜひiPad上でも続きが書ける環境を作りたかったんだ。

で、Stashをインストール後、お約束のSSH鍵認証のための鍵作成に取り掛かった。

$ ssh-keygen -t rsa -b 2048

これは2048bitのRSA鍵作成のためのコマンドだ。

-H パスワードを加えると、SSH秘密鍵のパスフレーズをつけることが可能だ。
パスフレーズをつけると認証に失敗するというネット情報があるが、真偽は確かめていない。

で、公開鍵をサーバ上の~/.ssh/authorized_keysに書き込むわけなんだが。。。

すでにsshd_configでパスワード認証をnoにしていたので、僕はStashで生成された公開鍵をShellyを使ってコピペして保存していた。

で、どういうわけだかsshの認証エラーが出る。
念のためにパスワード認証を復活させると、鍵認証に失敗した場合でもパスワード認証では通信できるので、???だっだ。

結論から言うと、Stashの公開鍵にはフレーズの最後に不要な文字コードが混じっているらしい。なので単純にauthorized_keysにコピペすると認証エラーが発生する。コピペした場合と、scpした場合を比べて初めて気づいた。OS XやUbuntuでは経験したことがなかったので、原因がわかるまで5日も無駄にしてしまった。

まず公開鍵をターゲットのサーバにscpする。

$ scp ~/.ssh/id_rsa.pub hogehoge@host:~/
(サーバ上のSSHポートを変えている場合は、-P ポート番号のオプションが必要)

パスワード認証でサーバに接続して、公開鍵をauthorized_keysに追加する。
$ cat id_rsa.pub >> .ssh/authorized_keys

SSHDのサービスを再起動する。
$ sudo /etc/init.d/ssh restart

これで僕の環境ではPythonista3から鍵認証によるSSH接続ができるようになった。

しっかし文字コードに問題があったとはなあ。

0 件のコメント:

コメントを投稿