回答:
WinSCPでも同じエラーが発生していました。1つの解決策は、を使用して「/ www /」フォルダーの所有権を変更することchown
です。そうすれば、「root」を所有者にする代わりに、ログインしたユーザーを所有者にすることができます。私はUbuntuではなくAmazon Linuxのインスタンスを使用していますが、このコマンドはうまくいきました:
sudo chown -R -v ec2-user /var/www/
ユーザー「ec2-user」は、ログインに使用するユーザーです。
WinSCPを介してログインするユーザーの書き込み権限を有効にします。これを行うには2つの方法があります。
最初の方法は、フォルダのアクセス許可を変更して、誰でも書き込みできるようにすることです。これは最高のセキュリティではありません。
chmod 777 /var/www
2番目の方法は、ディレクトリを所有するグループにユーザーを追加し、グループにディレクトリへの書き込み権限を設定することです。
ディレクトリの所有者を確認します。
ls -l /var | grep www
次のようなものが表示されます。drwxr-x --- 9 www-data www-data 4096 2009年7月14日www重要なことは、rootとrootの2つの名前です。この場合、ディレクトリの所有者はwww-dataであり、ディレクトリのグループはwww-dataです。そこで、ユーザーをグループwww-dataに追加します。
usermod -G www-data user
次に、グループに書き込み許可を追加します。
chmod 770 /var/www
今
ls -l /var | grep www
drwxrwx --- 9 www-data www-data 4096 2009年7月14日www
これにより、ディレクトリへの書き込みが可能になりますが、すべてのユーザーに書き込み権限が与えられることはありません。
次のチュートリアルが役立って、役に立つスクリーンショットを提供します。sudo権限を持つ通常のユーザーとしてログインするには、いくつかのWinSCPオプションを調整するだけで済みます。http: //cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user-from.html
セッション/ファイルプロトコルをSCPに設定し、ホスト/インスタンスIP、ポート(通常22)、および通常のユーザー名を入力します。ログインに必要な場合は、パスワード資格情報を入力します。ユーザーの対応する秘密鍵ファイルをAdvanced / SSH / Authenticationに追加します。
Advanced / SSH / Authentication / attempt "keyboard interactive"認証のチェックを外すと、Advanced / Environment / SCP Shell / Shell / Shellが許可されます。
更新:08/03/2017
WinSCPロギングは、問題のトラブルシューティングに役立ちます。
winscp.net/eng/docs/logging:
[WinSCP]ログは、PreferencesダイアログのLoggingページから有効にできます。ログは、/ logおよび/ xmllogパラメーターをそれぞれ使用してコマンドラインから有効にすることもできます。これは、スクリプト作成で特に役立ちます。.NETアセンブリでは、Session.SessionLogPath1を使用してセッションロギングを有効にします。
WinSCP接続エラーに応じて、一部のサーバーインストールでは、指定されたユーザーにTTYを要求しないように、(Ubunto、CentOS、その他のLinuxサーバー)/ etc / sudoersファイルにディレクティブを追加する必要があります。/etc/sudoers.d/にファイルを作成する(AmazonコマンドラインインターフェイスやPuTTYなどのツールを使用する)方が、/ etc / sudoersを編集するよりも優れたオプションです。いくつかの/ etc / sudoersバージョンが推奨しています:
このファイルは、rootとして「visudo」コマンドを使用して編集する必要があります。このファイルを直接変更する代わりに、/ etc / sudoers.d /にローカルコンテンツを追加することを検討してください。sudoersファイルの作成方法の詳細については、manページを参照してください。
コマンドラインから(ルートとして)sudoersファイルを編集する場合、構文エラーについてファイルを解析するため、「visudo」コマンドを使用してファイルを開く必要があります。/etc/sudoers.d/ファイルは通常、rootによって所有され、最小限の権限でchmodedされます。デフォルトの/ etc / sudoersファイルは、インストール時に推奨されるchmod許可を自動的に持つため、参照される場合があります。例:0440 r--r -----。
superuser.com/a/869145:
visudo -f /etc/sudoers.d/somefilename
Defaults:username !requiretty
便利なリンク:
WinSCPフォーラム:-winscp.net/forum/viewtopic.php?t=3046-winscp.net/forum/viewtopic.php?t=2109
WinSCP Doc:https : //winscp.net/eng/docs/faq_su
SCPプロトコルを使用すると、[サイトの詳細設定]ダイアログの[SCP /シェル]ページでカスタムシェルとして次のコマンドを指定できます。
sudo -s
[...]
WinSCPは端末エミュレーションを実装できないため、sudoersオプションrequirettyをオフにする必要があることに注意してください。
Ubuntu Apache / etc / sudoersの手順では、/ etc / sudoersを直接編集するのではなく、/ etc / sudoers.dにディレクティブを追加することをお勧めします。インストールによっては、/ etc / sudoers.d / cloud-initにディレクティブを追加することもできます。
インスタンスのドキュメントに記載されている手順に従って、sudo権限を持つSSHテストユーザーを作成すると、ユーザーが推奨するインスタンス設定を確認し、サーバーsudoerファイルの更新を他のユーザーに影響を与えずに有効化および削除できるようになります。