SFTPコマンドの覚書
たまに使うのですが、その都度メモ代わりに使ってるgistを見直してるので、自分が使う範囲にして記事にしてまとめておきます。
接続
下記が基本のコマンドになる。パスワード認証ができるのかどうかは知らない。ポートのオプションはデフォルト(22番)を使用している場合は必要ない(はず)
1 |
sftp -i <秘密鍵パス> -oPort=<ポート> <ユーザー名>@<リモートホスト>:<リモートのディレクトリ> |
具体的には下記のようになる。
1 |
sftp -i /home/user/.ssh/secret.pem -oPort=22222 hoge@192.168.33.10:/home/hoge/tmp/ |
この時に、Ubuntu16.04にインストールされていたSFTPだと-i
オプションが存在したがCentOS6.6にインストールされていたものだと-i
オプションがなかった。この場合は-oIdentityFile=<秘密鍵パス>
と記述する必要がある。
※CentOSのセットアップ・インストールは私がやったわけじゃないのでたぶんパッケージアップデートしたら-i
オプション使えたりするんじゃないかと思ったりもする
オプション
-o
を付与する。複数指定する場合はそれぞれに-o
と記述しないといけないようだ。-o
の後に半角スペースはあってもなくてもよい。
1 |
# -oの後に半角スペースがあろうがなかろうがどっちでもよい |
接続後のコマンド
SFTPはSCPと違って対話形式なので、ディレクトリ内のファイルの確認とかカレントディレクトリの変更ができる。
ディレクトリのファイル確認
ls
コマンドでリモートのファイル一覧を確認できる。
1 |
sftp -i /home/user/.ssh/secret.pem -oPort=22222 hoge@192.168.33.10:tmp/ |
逆にlls
コマンドでローカルのファイル一覧を確認できる。
1 |
sftp> lls |
ディレクトリの変更
cd
コマンドでリモートのディレクトリを変更、lcd
コマンドでローカルのディレクトリの変更を行うことができる。
リモートからファイルを転送する
get
コマンドでリモートからファイルを転送する。
1 |
sftp> get source.tar |
リモートにファイルを転送する
put
コマンドでリモートからファイルを転送する。
1 |
sftp> put source.tar |