Есть ли способ отправлять файлы через pscp, используя -load profile
без указания хоста, если я уже указал его в профиле?
Я хочу указать только исходный путь, целевой путь и профиль без указания пользователя и хоста, потому что он уже в профиле.
Пример: я хочу создать сценарий в пакетном режиме, который будет отправлять в корень хоста из профиля, указанного в качестве файлов первого аргумента, указанного во втором аргументе:
@echo off
pscp.exe -load %* SOMETHING:/
pause
Но я не знаю, что поставить вместо SOMETHING
. Мне нужен этот сценарий для создания отправки в записи меню в Windows 8.1 (в этом случае ярлыки Windows в меню отправки в меню не могут принимать% 1,% 2,% * и т. Д., Поэтому я должен создать сценарий для изменения порядка параметров в pscp.
Если я правильно понял:
вы работаете на хосте Windows, локально подключенном как учетная запись "winuser";
на таком хосте вы можете успешно использовать "putty" для SSH-доступа к удаленному хосту (назовем его "remote_host"), аутентифицируясь как удаленный пользователь "root". Предположим, ваша аутентификация «основана на пароле»;
у вас есть профиль шпатлевки для "remote_host", который включает не только удаленное имя хоста / ip_address, но также имя удаленного пользователя "root";
вам нужен BAT-файл, с помощью которого вы можете «pscp» что-то на / с вашего локального компьютера с / на «remote_host», без явного указания имени пользователя «root» в таком BAT-файле. Это потому, что в профиле шпатлевки вы это уже указали.
Это правильно?
Если да, то такой файл BAT:
@echo off
pscp c:/tce-test.tce imac:/tmp
pause
скопирует локальный файл Windows c: \ tcp-test.tce на удаленный хост, указанный в профиле шпатлевки "imac", подключится к такому хосту с именем пользователя, указанным в том же профиле шпатлевки "imac", и запишет файл в удаленная папка / tmp.
Другими словами, как четко указано в документация pscp
5.2.1.2 host
The name of the remote server, or the name of an existing PuTTY saved session. In the
latter case, the session's settings for hostname, port number, cipher type and username
will be used.
вместо параметра host можно использовать имя сохраненного сеанса шпатлевки. Именно то, что вам нужно.
Сказав все вышесказанное, позвольте мне добавить следующие соображения:
при таком подходе вы навязываете фиксированный удаленный пользователь: тот, который указан в профиле шпатлевки. Это ограничение может вам не понравиться;
если не указывать имя пользователя в профиле шпатлевки, pscp откатится к использованию имени пользователя, которое вы используете на локальном хосте Windows («winuser» в примере выше): если локальные имена пользователей имеют похожие имена пользователей, определенные на SSH-сервере, это могло быть плюсом;
безопасный и удобный способ избежать ввода SSH-пароля - полагаться на аутентификацию по SSH-ключу. С окнами вы можете найти Конкурс агент, который можно запустить при запуске Windows и взять под контроль (локальные) ключи аутентификации пользователя. После того, как агент запущен и управляет ключами, все программное обеспечение семейства putty (putty, pscp и т. Д.), А также множество других программ могут правильно пройти ssh-аутентификацию, не запрашивая у пользователя пароль вообще (пожалуйста не воспринимайте это как слабое место в системе безопасности, поскольку это как раз наоборот: с ключами вы укрепление ваши схемы аутентификации);
если вы полагаетесь на ключи для аутентификации, вы можете указать PSCP на соответствующий файл ключей, используя параметр "-i"
Из: Официальная документация PuTTY:
3.8.3.18 -i: specify an SSH private key
The -i option allows you to specify the name of a private key file in *.PPK
format which PuTTY will use to authenticate with the server. This option is only
meaningful if you are using SSH.
For general information on public-key authentication, see chapter 8.
This option is equivalent to the ‘Private key file for authentication’ box in the Auth
panel of the PuTTY configuration box (see section 4.20.7).