通信に関しては、それはサーバーとクライアントを持っている必要があります。本明細書中で使用さSSHDサーバーがそうであるように、SCPクライアントが行います。
一つは、ファイルを受け入れて0.0.0.0:22など、sshdのバインドネイティブLANポートの使用を開始しなければならない
の/ etc / SSH / sshd_configの設定ファイル、もしBにA(窓/ Linuxの/ MacOSの)(Windowsの結合方法を構成することです/ Linuxの/ MacOSの)ファイルを送信し、2つの方法があります
と仮定ユーザーという名前のユーザA、IPが192.168.1.10で、ファイルパス/1.txt
- 実行sshdサービスは/ usr / sbinに/ sshdの、BランSCP [email protected]:/1.txt 1.TXT
- Bの実行sshdサービスは/ usr / sbinに/ sshdの、BランSCP 1.TXT [email protected]:/1.txt
ここで注意すべき点がいくつかあります:
Windows上で実行されているのsshdサーバどのように
それを言ったことはなかっただろうにsshdを実行する方法Linuxは、検索しやすいです。ここだけでは、Windows用の推奨はgitで、窓を議論sshd.exe、scp.exe、これは、ssh.exe、sshは、独自のウィンドウを持つアカウントのパスワードアカウントのパスワードを使用しています。このツールは、すべてをインストールするのが最善である、ファイルを保存する場所を通り過ぎるために見つけることができ、gitのgitのsshのルートディレクトリに付属していると、インストールディレクトリです。gitのルートディレクトリは、/ etc / ssh / sshd_config:注gitのは、SSHの設定ファイルで来ます。また、あなたがログインしたときにGitは、アカウントのパスワードが付属していますまた、Windowsで使用されているsshdのサービスを来て、これは非常に便利です。一方、Gitはpasswdのコマンドは、パスワードを変更することができています- 設定するには、LANサーバーを実行するためにsshdをどのように
sshd_configファイルは、次のように変更:. A ListenAddressを0.0.0.0のコメントを外し、この行(#記号)を作るためにB。GSSAPIAuthenticationはいはい、このラインとのコメントを外していない変更
- 伝送加速
SCPは、パスワードを要求するたびに、問題を解決するため、最初に。あなたが密なログを避けたい場合は、このようにssh-コピー-ID [email protected]としては、ssh-コピー-idコマンドを使用する必要があります。コマンド・ウィンドウを使用すると、winowsにscpコマンドとの緊密なリーチログインを避けたい場合は、その後、あなたはPythonスクリプトを実行したい、ではありません。
import argparse, os
from subprocess import call
def winToPosix(win):
posix = win.replace('\\', '/')
return "/" + posix.replace(':', '', 1)
parser = argparse.ArgumentParser()
parser.add_argument("-i", "--identity_file", help="identity file, default to ~\\.ssh\\idrsa.pub", default=os.environ['USERPROFILE']+"\\.ssh\\id_rsa.pub")
parser.add_argument("-d", "--dry", help="run in the dry run mode and display the running commands.", action="store_true")
parser.add_argument("remote", metavar="user@machine")
args = parser.parse_args()
local_key = winToPosix(args.identity_file)
remote_key = "~/temp_id_rsa.pub"
scp_command = "scp {} {}:{}".format(local_key, args.remote, remote_key)
print(scp_command)
if not args.dry:
call(scp_command)
ssh_command = ("ssh {} "
"mkdir ~/.ssh;"
"touch ~/.ssh/authorized_keys;"
"cat {} >> ~/.ssh/authorized_keys;"
"rm {};").format(args.remote, remote_key, remote_key)
print(ssh_command)
if not args.dry:
call(ssh_command)
そして、問題の遅くにSCP転送速度を解きます。私がここに持っている100MbpsのLANですが、ファイルの転送にSCP、最後にゆっくりと1M以下に3Mを達成するために始めて、そして時に、SCPラインとそれほど単純ではありません。すなわち、4Mに一定の速度を作るために-o「圧縮はい」を使用してscpコマンドを使用する場合:-o SCP「圧縮はい」1.TXT [email protected]:/1.txt