Ideal Reality

興味の赴くままに

sshuttleがCentOS 7のサーバーに接続できない時の対処

sshuttle便利ですけど、最近のバージョンはサーバーにpython3が必要となったので、CentOS 7に繋ごうとすると以下のようなエラーが出るようになりました。

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "assembler.py", line 18, in <module>
TypeError: module.__init__() argument 1 must be string, not unicode
client: fatal: expected server init string b'SSHUTTLE0001'; got b''

共用サーバーに勝手にPython3を入れるわけにもいかないので、クライアント側のsshuttleのバージョンを下げて対処します。

macOSだと記事執筆当時homebrewで入手できるsshuttleは1.0.4_1ですが、これを0.78.5_2まで下げます。

cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
git checkout eed4935aa1d8c7ff3b7e63c8063249c6c046677e sshuttle.rb
brew unlink sshuttle
HOMEBREW_NO_AUTO_UPDATE=1 brew install sshuttle

これでsshuttleのバージョンが0.78.5_2となり、CentOS 7のサーバーにも繋ぐことができるようになりますし、brew switch sshuttle 1.0.4_1とすればバージョンを戻すこともできます。

普段は最新版を使っておいてCentOS 7のサーバーに接続するときだけ/usr/local/Cellar/sshuttle/0.78.5_2/bin/sshuttleを直に叩くのもあり。

Linuxの場合はディストリビューションやパッケージマネージャーなどによって違うので、各自ダウングレード方法を調べてください。

困ったら以下のコミットログから旧バージョンをcloneしてくればなんとかなるはず。Readmeにありますが、setup.pyというスクリプトを用意してくれているので、簡単にインストールできると思います。

sshuttle/sshuttle

Transparent proxy server that works as a poor man's VPN. Forwards over ssh. Doesn't require admin. Works with Linux and MacOS. Supports DNS tunneling. - sshuttle/sshuttle

また、古いバージョンはsshuttle --sudoersが使えないので、もしパスワードなしで使いたい場合は以下の記事を参考に手動で設定してください。

sshuttleをパスワードなしで利用できるようにする

sshを簡易VPNとして利用できるsshuttleというソフトがあります。Windowsで使えないことや、利用には管理者権限が必要なことがデメリットですが、自動でipfwやiptablesを設定してく...

スポンサーリンク

コメント

投稿されたコメントはありません

名前

メールアドレス(任意)

コメント

関連する投稿

サーバーをCentOS 8にアップデートしました