各位大大們好!我嘗試從我的桌機 windows10 使用終端機上傳檔案到 我的 AWS 主機,卻碰到key 的權限報錯,而且不同的終端機,顯示報錯的情形也不相同,狀況如下:
我的命令:
scp -i "*****.pem" 001.jpg ubuntu@ec2-54-***-**-164.ap-northeast-1.compute.amazonaws.com:/var/www
終端機共3種 cmd Cmder Gitbash 輸出如下:
cmd:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for '*****.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "*****.pem": bad permissions
ubuntu@ec2-54-***-**-164.ap-northeast-1.compute.amazonaws.com: Permission denied (publickey).
lost connection
Cmder:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for '*****.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "*****.pem": bad permissions
ubuntu@ec2-54-***-**-164.ap-northeast-1.compute.amazonaws.com: Permission denied (publickey).
lost connection
Gitbash:
load pubkey "*****.pem": invalid format
scp: /var/www/001.jpg: Permission denied
我原本以為是*****.pem檔案權限問題所以也執行了以下命令:(沒有改善)
chmod 400 *****.pem
終端機共3種 cmd Cmder Gitbash 輸出如下
cmd:
'chmod' is not recognized as an internal or external command,
operable program or batch file.
Cmder 和 Gitbash 都沒有報錯也沒有輸出任何訊息
請教有經驗的大大,指點一下迷津。
AWS 給你的帳號只是 sudoer user, 不是 root, 你要先登入進去 sudo 之後, 才有權限可以寫入:除了 home directory 以外的其他目錄...
但是 scp 不會幫你下 sudo 指令, 所以你無法用 scp 去變更身分
你有幾種解法:
ssh serverb sudo mkdir tempdir && sudo chmod 777 tempdir
scp yourfile serverb:tempdir
ssh serverb mv tempdir/yourfile /path/to/the/destination
rsync --rsync-path="sudo rsync" <LOCALFILE> USER@SERVER2:/root
ssh -t host 'sudo -v'
ssh -C host 'cd /; sudo tar cf - path/to/file/or/dir' | tar xpsf - --preserve
git pull <your_git_repository>
就可以更新全部的檔案差異...