プロジェクト

全般

プロフィール

Linuxリモートシェル

セキュアシェル

telnet、ftp、rsh、rcpなどはリモート計算機の操作における認証にパスワードを用い、またパスワードが平文で流れてしまいます。
ネットワークをキャプチャするとパスワードが簡単にわかってしまいます。

そこで、セキュアなリモートシェルであるssh、sftp、scpなどを使います。認証にはパスワードまたは公開鍵が使えます。セキュアシェルではパスワードが暗号化されますが、さらに公開鍵の方が安全性が高いです。

コマンド操作

コマンド操作一覧

ユーザー名/認証鍵ファイルを別に作成した場合のコマンド操作

ローカルマシンのユーザー名とリモートマシンのユーザー名が違う場合、および認証鍵ファイルが違う場合のコマンド操作です。

リモートホスト名: host.example.com
ユーザー名: tom
ポート番号: 50022
認証鍵(秘密鍵)ファイル: ~/.ssh/id_rsa_example_com

ssh

~$ ssh tom@host.example.com -p 50022 -i ~/.ssh/id_rsa_example_com <コマンド>

scp

~$ scp -P 50022 -i ~/.ssh/id_rsa_example_com tom@host.example.com:arc

便利操作

sshが切れても処理を継続する

screen

screenを使って、ssh作業をssh接続が切れても継続できるようにします。

ケース1) screenをデタッチしてからscreenに再度アタッチする

  • sshで接続後、screenコマンドで新規のscreen(仮想端末)を起動
    ~$ screen
  • 作業を実行
  • 作業を途中で抜ける時は、Ctrl+a d で仮想端末をデタッチ
  • 実行中の仮想端末に接続(アタッチ)
    ~$ screen -r <ID>
    実行中のscreenが1つだけの場合、ID指定を省略可能
  • 作業が終わったらCtrl+dで仮想端末をシャットダウン

明示的にscreenをデタッチした場合、screenを実行しているターミナルを終了した場合は、仮想端末がデタッチ状態となるので、新しいターミナルからアタッチが可能です。しかし、ネットワークの障害でsshが切れた場合は、仮想端末がアタッチ状態のままなので、新しいターミナルからアタッチするのに別な方法を取ります。

ケース2)screenで作業中に、ネットワーク障害で接続が切れた場合

  • sshで接続後、screenコマンドで新規のscreen(仮想端末)を起動
    ~$ screen
  • 作業を実行
  • 作業途中でsshが切断発生
  • sshで再度接続をして、screen一覧をチェック
    ~$ screen -ls
    IDは、screen -lsで表示される 13245.pts1.myhost... の数値部分を指定
  • Attached状態のscreenに強制接続
    ~$ screen -d -r <ID>
    実行中のscreenが1つだけの場合、ID指定を省略可能


約2ヶ月前に更新