LoginSignup
0
0

More than 3 years have passed since last update.

自分メモ:ShellでSSHしまくった時のトラブル解消メモ

Last updated at Posted at 2021-01-30

はじめに

シェルスクリプトでSSHして、複数のクライアントにはいり、SQLiteにselect文を発行して、結果を取得する。ということをやった時にトラブったのでメモ書き。(超初心者向け)

なぜシェルスクリプトか?

ネットにつながっていない環境でしたので、ライブラリを追加することはできませんでした。(というかできるならpythonあたりでやりたかった。)

トラブル1

ループでSSHをで入ることを考えたが、一つ目に入ると、シェルが終了する。

トラブル1原因

シェルでSSHすると、コンソールがSSHで入った先に移るため、SSHさきでexitすると、シェル自体が終了してしまっていた。

トラブル1解決法

sshで起動するときに、-n オプションを入れ、コンソールを渡さないようする。
また、同一シェル内でSSHすると、解消しなかったため、メイン、サブ構成にして、サブ側でSSH入るようにした。

トラブル2

SSHで入る際にパスワードを渡す方法。

トラブル2原因

まあ、推し量って下さい・・・

トラブル2解決法

@wadahiro様の記事を参考にさせていただきました。

なお、chmodで実行権を与えてください。
直接起動しないとうまく動きません。

トラブル3

初めてつなぐクライアントでフィンガープリントが表示される。
トラブル2解消後であったため、yes/noが入力できず、無限ループになる。

トラブル3原因

・・・・そういうもんですよね。

トラブル3解決法

SSHのオプションに -o ”StrictHostKeyChecking no" を入れる。

トラブル4

SSHで入った後、SQLiteでselectする際、select付近にエラーがある旨のメッセージが出力される。

user@mac:~/documents $ ssh user@192.168.1.xxx sqlite3 db.sqlite3 "select * from test"
user@192.168.1.xxx's password:
Error: near "select": syntax error

トラブル4原因

一度SSHで入ってからsqlite3 db.sqlite3 "select ・・・”すると、当然ですが成功します。

トラブル4解決法

コマンド部分を''で囲む。
ssh user@192.168.1.xxx 'sqlite3 db.sqlite3 "select * from test"'

で解決。

というわけで自分メモ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0