ギーク
学校へのssh接続を自動化した
Kentaro Mimata
はじめに
僕はよく学校へssh接続を行い、そこからプログラミングの課題をやったり提出したりしている。
その際にいちいち長いコマンドを打ち、パスワードを入力して接続するのは少々面倒だったので自動化することにした。
expectによる実装
- そもそもexpectってなんぞや?
- とりあえずスクリプトを書いてみた
ssh自動化はexpectというもので出来るらしい。(他のでも出来ますがexpectが簡単で分かりやすそうだった)
調べたらexpectとは対話的なプログラムとのやりとりを自動化するプログラムらしい。
今回の場合、向こうからパスワードを聞かれた時それに対して人間がパスワードを入力するがこれを自動化してくれる。
以下の記事を参考にした。
Linuxの対話がめんどくさい?そんな時こそ自動化だ!
sshという名前のディレクトリを作ってそこでssh_school.shというファイル名に書いた。
スクリプトを書き、そのまま実行しようとしてもパーミッションが許可されていないので
$ chmod u+x ssh_school.sh
で実行権限を付与。
$ ./ssh_school.sh
で見事ssh自動化に成功。これを叩くだけでパズワードを入力する手間をかけずに学校にssh接続できた。
その後、自分はzshを使っていたのでzshの環境設定ファイル.zshrcに以下のようなのを追加した。
#.zshrc
alias sshs='~/ssh/ssh_school.sh'
でaliasを貼り、これで長いコマンドを打たなくて済み、尚且つどこの場所にいても"sshs"と叩けば学校へのsshが出来るようになった。
最後に
今回はsshでは学校に入るだけだったので今度はこれらを応用してローカルとディレクトリの自動同期など色々な事をやっていけたらなと思います。