Posso conectar-me à máquina Windows usando o shell Linux?

68

Posso conectar-me a máquinas Linux no Windows usando PuTTY / SSH. Eu quero fazer o contrário - conectar-se a uma máquina Windows a partir do Linux.

Isso é possível?

vis
fonte
Consulte a resposta abaixo: unix.stackexchange.com/a/427739/242983 . O OpenSSH agora é suportado nativamente pela atualização mais recente do Windows10. No entanto, não está disponível para versões mais antigas. Atualize seu Windows10 antes de tentar isso.
Alpha_989
@ Manishearth Porque às vezes você quer apenas algo que funcione imediatamente, sem necessidade de leitura extra.
Zimano

Respostas:

23

Depende de como você deseja se conectar. Você pode criar compartilhamentos na máquina Windows e usar smb / cifs para conectar-se ao compartilhamento.

A sintaxe dependerá se você estiver em um domínio ou não.

# mount -t cifs //server/share /mnt/server --verbose -o user=UserName,dom=DOMAIN

Você também pode montar os $IPCcompartilhamentos administrativos. Você pode procurar na Comunicação entre processos o que pode fazer por meio do $IPCcompartilhamento.

Sempre há:

  • RDP
  • VNC
  • telnet
  • ssh
  • Linux no Windows

Nos últimos 3, você precisa instalar um software adicional.

O VNC pode ser executado a partir de um binário independente ou instalado.

Para o RDP, a maioria dos sistemas Linux já está rdesktopinstalado ou está disponível no gerenciador de pacotes. Ao usar, rdesktopvocê só precisa habilitar as conexões RDP ao seu sistema Windows e, em seguida, poderá usar o RDP para um console completo da GUI do Windows.

2bc
fonte
7

Sim, você pode se conectar à máquina Windows a partir do cliente Linux. Mas para isso você precisa hospedar algum tipo de servidor (por exemplo, telnet, ssh, ftp ou qualquer outro tipo de servidor) na máquina Windows e deve ter o cliente correspondente no Linux.

pradeepchhetri
fonte
2
Como o Windows depende mais de sua GUI do que o Linux, sua melhor aposta é provavelmente o RDP .
Cjm 24/03/12
Eu não acho que algo como ftp foi pensado na questão. E telnet - ... realmente?
usuário desconhecido
Sim, ele provavelmente significava ssh ...
jcora
@pradeepchhetri e o Windows tem alguns desses servidores ativos por padrão?
H_7 25/03
3
@ H_7: O Windows suporta servidor telnet e ftp, mas por padrão eles não estão em execução. Você precisa executá-los da seguinte maneira: 1. Vá para Painel de controle -> 2. Programas e recursos -> 3. Ative ou desative os recursos do Windows. Aqui você pode ver a lista de servidores ou cliente. Você pode executar o servidor telnet ou ftp a partir daqui.
27412 pradeepchhetri
5

Se você estiver ligado Windows 10, poderá instalar OpenSSHusando o seguinte script do Powershell.

#change dns server to 8.8.8.8 so that the OpenSSH stuff can be downloaded
netsh interface ip set dns "Ethernet" static 8.8.8.8

#sleep for 60 s so that the DNS server has time to register
Start-Sleep -m 60

#check if OpenSSH is already installed or not
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

# Check if OpenSSH is available
dism /Online /Get-Capabilities | findstr OpenSSH

# install the server and/or client features:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

Install-Module -Force OpenSSHUtils

Repair-SshdHostKeyPermission -FilePath C:\Windows\System32\OpenSSH\ssh_host_ed25519_key

# start the ssh server daemon
Start-Service sshd

# This should return a Status of Running
Get-Service sshd

# add firewall rule to allow inbound and outbound traffic through port 22
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Service sshd -Enabled True -Direction Inbound -Protocol TCP -Action Allow -Profile Domain

Observe que esse script alterará o DNS para o Google DNS. Como OpenSSHnão é distribuído com a Windows10distribuição padrão , ele efetivamente baixa alguns arquivos da Internet. Portanto, você precisa de uma conexão à Internet funcionando e de um servidor DNS correto, e foi por isso que especifiquei o servidor DNS estático, caso você esteja protegido por um firewall ou usando um IP estático sem servidor DNS.

Depois de fazer isso, você deve descobrir o endereço IP do nome de usuário do Windows host

ipconfig

Então, a partir do Linux/UnixSO

ssh username@Windows_ip

em que nome de usuário é o nome da conta e Windows_ipé o endereço IP do computador com o qual você está tentando fazer login

alpha_989
fonte
Na instalação do Windows, nada, exceto a primeira linha, é executado. A resposta é "Sart-Sleep não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote". Portanto, este não é tão bolinho-cortador como você gostaria :-)
levitopher
11
Um usuário anônimo acabou de notar em uma edição (com falha) que a linha que começa com Repair-SshdHostKeyPermissionnão é necessária. Não sei se isso é verdade ou não, mas, caso seja, não quero que a nota se perca para sempre.
roaima
4

Talvez você queira experimentar o RDP ou software como o teamviewer. Além disso, você pode instalar o cygwin na sua máquina Windows e configurá-lo para acesso ao ssh, para que você obtenha um shell como o conhece no linux quando se conectar pelo ssh.

mru
fonte
2

Você deve instalar o servidor openssh no Windows Machine como o servidor openssh no android. Você pode usar o putty na máquina iinux para ssh no windows Machine.

supriady
fonte
11
por que você precisa de massa em máquinas linux para ssh para windows? ssh normalmente já está instalado em máquinas linux .. não é?
Alpha_989
2

Se você usa o git no Windows, parabéns, já pode fazer o ssh na sua máquina Windows.

Basta iniciar o servidor ssh:

net start "C:\Program Files\Git\usr\bin\sshd.exe"

Em seguida, configure seu firewall com este comando powershell:

New-NetFirewallRule -Name sshd -DisplayName 'SSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
cowlinator
fonte