MacでSSH接続やファイルのアップロード・ダウンロードをする際、WindowsにあるPuttyやWinSCPのような使いやすいクライアントソフトに恵まれてないため、どうしてもターミナル(コマンド)操作になりますよね。
毎度やっているけど、都度忘れてその度にググってるのでメモ代わりに記事として残しておこうと思います。
SSHコマンド
リモートホストにアクセスしたい時に使用。
# 秘密鍵の指定がない場合
$ ssh ユーザー名@ホスト名(IP) -p ポート番号
# ホスト名で接続する場合の例
$ ssh username@sample.com -p 22
# IPで接続する場合の例
$ ssh username@192.186.35.100 -p 22
※「-p ポート番号」オプションは、ポート番号のがデフォルトの22番のままなら省略しても問題ありません。別のポート番号で接続する場合は「-p ポート番号」オプションで指定します。
秘密鍵の指定がある場合、「-i 鍵のファイルパス」オプションを使用します。
# 秘密鍵の指定がある場合
$ ssh -i 鍵のファイルパス ユーザー名@ホスト名 -p ポート番号
# 例)
$ ssh -i /Users/username/keydir/private_key username@192.186.35.100 -p 22
秘密鍵の生成方法や設定については以下を参考。
SCPコマンド
ファイルをアップロード・ダウンロードしたい時に使用。
アップロード
ローカルマシンのファイルをリモートサーバにアップロードすることを想定してます。
ファイルのみアップロードする場合
# 秘密鍵の指定がない場合
$ scp -P ポート番号 アップ元ファイルパス ユーザー名@ホスト名(IP):アップ先ファイルパス
# 例)
$ scp -P 22 /Users/username/Desktop/sample.png username@192.186.35.100:/var/www/share/sample.png
# 秘密鍵の指定がある場合
$ scp -i 鍵のファイルパス -P ポート番号 アップ元ファイルパス ユーザー名@ホスト名(IP):アップ先ファイルパス
# 例)
$ scp -i /Users/username/keydir/private_key -P 22 /Users/username/Desktop/sample.png username@192.186.35.100:/var/www/share/sample.png
フォルダごとアップロードする場合
フォルダごとアップロードする場合、「-r」オプションを使用します。
# 秘密鍵の指定がない場合
$ scp -P ポート番号 -r アップ元フォルダパス ユーザー名@ホスト名(IP):アップ先フォルダパス
# 例)
$ scp -P 22 -r /Users/username/Desktop/imagedir/ username@192.186.35.100:/var/www/share/imagedir/
# 秘密鍵の指定がある場合
$ scp -i 鍵のファイルパス -P ポート番号 -r アップ元フォルダパス ユーザー名@ホスト名(IP):アップ先フォルダパス
# 例)
$ scp -i /Users/username/keydir/private_key -P 22 -r /Users/username/Desktop/imagedir/ username@192.186.35.100:/var/www/share/imagedir/
※ アップロードしたいフォルダ(imagedir)の末尾にはアップ元にもアップ先にも末尾スラッシュを指定する。
ダウンロード
リモートサーバのファイルをローカルマシンにダウンロードすることを想定してます。
ファイルのみダウンロードする場合
# 秘密鍵の指定がない場合
$ scp -P ポート番号 ユーザー名@ホスト名(IP):ダウンロード元ファイルパス ダウンロード先ファイルパス
# 例)
$ scp -P 22 username@192.186.35.100:/var/www/share/sample.png /Users/username/Desktop/sample.png
# 秘密鍵の指定がある場合
$ scp -i 鍵のファイルパス -P ポート番号 ユーザー名@ホスト名(IP):ダウンロード元ファイルパス ダウンロード先ファイルパス
# 例)
$ scp -i /Users/username/keydir/private_key -P 22 username@192.186.35.100:/var/www/share /Users/username/Desktop/sample.png
フォルダごとダウンロードする場合
フォルダごとダウンロードする場合、「-r」オプションを使用します。
# 秘密鍵の指定がない場合
$ scp -P ポート番号 -r ユーザー名@ホスト名(IP):ダウンロード元ファイルパス ダウンロード先ファイルパス
# 例)
$ scp -P 22 -r username@192.186.35.100:/var/www/share/imagedir/ /Users/username/Desktop/imagedir/
# 秘密鍵の指定がある場合
$ scp -i 鍵のファイルパス -P ポート番号 -r ユーザー名@ホスト名(IP):ダウンロード元ファイルパス ダウンロード先ファイルパス
# 例)
$ scp -i /Users/username/keydir/private_key -P 22 -r username@192.186.35.100:/var/www/share/imagedir/ /Users/username/Desktop/imagedir/
※ ダウンロードしたいフォルダ(imagedir)の末尾にはダウンロード元にもダウンロード先にも末尾スラッシュを指定する。
注意事項
ポート番号指定オプションについて
SSHコマンドでは小文字で「-p」となり、
SCPコマンドでは大文字で「-P」となります。
それぞれ間違えると指定が無効となります。
※デフォルトの22番ポートのままならポート番号指定オプションは省略可能です。