いつもお世話になっております。
表題の件の通りでVPS(LOCAL)からレンタルサーバ(REMOTE)にデータを送りたいのですが、エラーが出て遅れません。当該コードは下記のとおりです。
import paramiko
HOST = 'xxxxx'
USER = 'xxxxx'
PSWD = 'xxxxx'
LOCAL_PATH = "/root/jump/xxxxx/img/test.txt"
REMOTE_PATH = "/root/home/xxxxx/xxxxx/pic/aaa.txt"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(HOST, username=USER, password=PSWD)
sftp = ssh.open_sftp()
sftp.put(LOCAL_PATH, REMOTE_PATH)
sftp.close()
ssh.close()
エラーは下記のとおりです。
Traceback (most recent call last):
File "ssh.py", line 15, in <module>
sftp.put(LOCAL_PATH, REMOTE_PATH)
File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 759, in put
return self.putfo(fl, remotepath, file_size, callback, confirm)
File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 714, in putfo
with self.file(remotepath, "wb") as fr:
File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 372, in open
t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 813, in _request
return self._read_response(num)
File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 865, in _read_response
self._convert_status(msg)
File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 896, in _convert_status
raise IOError(errno.EACCES, text)
IOError: [Errno 13] Permission denied
まずパスなのですが、ファイル名やパスを変更して実行すると『...No such file...』のようなエラーが返ってくるのでパスはあっていると思っているのですが。。。
次にパーミッションのエラーが出ているのでとりあえず下記のように変更しました。
ローカル側
img root root 777
test.txt root root777
リモート側
pic user1 user2 777
とりあえずすべて777にしているのですが結果が変わりません。
実行はrootで行っております。
パイソンのバージョンは3.5をインストールしたのですが下記のコマンドで2と3が両方出てきてしまいます。バージョン2の方で実行してしまっているのが原因だったりするのでしょうか?
[root@python]# python3.5 -V
Python 3.5.5
[root@python]# python -V
Python 2.7.5
どなたかご教授お願いいたします。
追記
レンタルサーバ(REMOTE)のほうにはPUTTYからSSHでログインはできました。
ただユーザーをROOTに変更できず、そのままcd/home/xxxxx/と入力しても拒否されます。
これが関係あるかわかりませんが一応載せさせていただきます。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
check解決した方法
0
REMOTE_PATH = "/root/home/xxxxx/xxxxx/pic/aaa.txt"→
REMOTE_PATH = "/home/xxxxx/xxxxx/pic/aaa.txt"
のように修正したら直りました。
rootを入れてしまっていたせいでパーミッション系のエラーが出ていたのは理解できませんが
一応直りました。
見に来てくださった皆様ありがとうございました。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる