Часто возникает ситуация, когда за одним внешним IP-адресом находится несколько серверов или виртуальных машин, доступ к которым организован через проброс портов (NAT). Например, подключение к первому серверу идет на адрес 123.123.123.123:33891, а ко второму — на 123.123.123.123:33892. При этом на каждом сервере используются разные учетные записи (логины и пароли).
Стандартный клиент удаленного рабочего стола Windows (mstsc.exe) сталкивается с проблемой: он сохраняет учетные данные, привязывая их только к IP-адресу или имени хоста, полностью игнорируя номер порта. В результате, когда вы сохраняете логин и пароль для одного сервера, эти данные перезаписывают сохраненные учетные данные для другого, и их приходится вводить вручную каждый раз. Давайте разберемся, как обойти это ограничение и настроить удобное сохранение данных для входа на каждый сервер.
Это наиболее изящный и простой способ "обмануть" систему, заставив ее думать, что мы подключаемся к разным компьютерам. Идея заключается в том, чтобы для одного и того же IP-адреса создать в системе псевдоним (алиас) — другое имя, по которому можно будет к нему обращаться.
Разберем по шагам, как это сделать:
C:\Windows\System32\drivers\etc\hosts[IP-адрес] [Имя-псевдоним]. Например, если ваш внешний IP-адрес 192.168.0.2, а вы хотите создать для него псевдоним myrdpserver2, строка будет выглядеть так:
192.168.0.2 myrdpserver2
Важно: между IP-адресом и именем должен быть хотя бы один пробел или табуляция. Имя можно придумать любое, главное, чтобы оно было уникальным и понятным для вас.
Теперь для Windows IP-адрес 192.168.0.2 и имя myrdpserver2 — это два разных целевых хоста, хотя они и ведут в одно место. Вы можете настроить подключения следующим образом:
192.168.0.2:44556. Указываете логин и пароль для первого сервера и ставите галочку "Запомнить учетные данные".myrdpserver2:44557. Указываете данные для второго сервера и также сохраняете их.Система сохранит два независимых набора учетных данных, и вам больше не придется вводить пароли вручную.
Это более продвинутый способ, который позволяет управлять учетными данными напрямую в Диспетчере учетных данных Windows. Он не требует редактирования системных файлов и позволяет явно указать, для какой комбинации адреса и порта нужно сохранить логин и пароль.
Для этого мы воспользуемся встроенной утилитой cmdkey. Запускать команды нужно в командной строке (cmd) или PowerShell.
Чтобы сохранить учетные данные для первого сервера (192.168.0.2:44556):
cmdkey /generic:TERMSRV/192.168.0.2:44556 /user:ИМЯ_ПОЛЬЗОВАТЕЛЯ_1 /pass:ПАРОЛЬ_1
Чтобы сохранить учетные данные для второго сервера (192.168.0.2:44557):
cmdkey /generic:TERMSRV/192.168.0.2:44557 /user:ИМЯ_ПОЛЬЗОВАТЕЛЯ_2 /pass:ПАРОЛЬ_2
Проанализируем эту команду:
cmdkey /generic: — указывает, что мы создаем общую запись в хранилище учетных данных.TERMSRV/ — это специальный префикс, который сообщает системе, что эти данные предназначены для служб терминалов (Terminal Services), то есть для RDP.192.168.0.2:44556 — здесь мы указываем полный адрес цели, включая порт. Именно это и решает нашу проблему./user: и /pass: — задают логин и пароль соответственно.После выполнения этих команд при подключении к соответствующим адресам и портам RDP-клиент будет автоматически подставлять сохраненные учетные данные.
Стандартный RDP-клиент позволяет сохранять все параметры подключения, включая адрес, имя пользователя, настройки экрана и многое другое, в специальный файл с расширением .rdp. Это удобно для создания ярлыков для каждого сервера.
Посмотрим на процесс:
mstsc.exe).192.168.0.2:44556) и имя пользователя для него.Server_1.rdp.192.168.0.2:44557 и его имя пользователя), сохранив файл как Server_2.rdp.Важный нюанс: само по себе создание .rdp файлов не решит проблему с перезаписью паролей. Но этот метод отлично работает в комбинации с первым (редактирование hosts). Создайте один .rdp файл для подключения по IP-адресу, а второй — для подключения по псевдониму, который вы создали (например, myrdpserver2:44557). Тогда для каждого файла можно будет смело сохранять учетные данные.
Файл .rdp — это обычный текстовый файл. Его можно открыть в Блокноте и отредактировать вручную. Там хранится множество параметров. Например, строка username:s:ИмяПользователя задает имя пользователя. Пароль хранится не в открытом виде, а в виде зашифрованной строки в параметре password 51:b:..., но только после того, как вы успешно подключились и сохранили его через Диспетчер учетных данных.
Если вы постоянно работаете с большим количеством удаленных подключений, то стандартный клиент Windows может быть неудобен. Существуют специализированные программы — менеджеры удаленных подключений, которые решают проблему хранения учетных данных "из коробки" и предоставляют массу дополнительных удобств.
Они имеют собственное, независимое от Windows, хранилище паролей и настроек. В них вы можете создать запись для каждого подключения, указав IP, порт, логин, пароль и другие параметры. Все данные будут храниться изолированно друг от друга.
Популярные и проверенные варианты:
Использование таких программ является наиболее профессиональным подходом при большом количестве серверов и полностью избавляет от описанной проблемы.