Skapa en SSH tunnel i Terminalen?

Tråden skapades och har fått 38 svar. Det senaste inlägget skrevs .
  • Medlem
  • Ljungby
  • 2008-10-27 20:07

Jag vill föra över filer med hjälp av en SSH tunnel till ett konto som jag har på en dator.
Jag förfogar över ip och postnummer till måldatorn.
Min dator------->server, ---> postnummer(det specifika portnumret slussar vidare all information till måldatorn.

Vad jag har förstått ska man skriva ssh -L port-ut:destination: port-in
Hittade även ssh -l username@destination.

Tanken är även att skapa krypteringsnycklar.

Är jag på rätt väg?

Ett lätt sätt annars för att tanka filer är med scp

scp -r /katalog/med/filer användare@mottagardator.se:/var/filerna/ska/hamna/

Du kan också tanka "bakvägen", dvs hämta filer från en dator:

scp -r användare@sändandedator.se:/katalog/som/ska/hämtas /var/dom/ska/hamna/lokalt/

  • Medlem
  • Sollentuna
  • 2008-10-27 20:13

Ja. Du har läst & förstått manualsidan rätt. Du skriver -l user eller user@host, men inte både och.

  • Medlem
  • Ljungby
  • 2008-10-27 20:18

Så när jag sitter i terminalen, hur skapar jag en SSH tunnel? när jag försöker händer absolut ingenting. Har även läst igenom hela man ssh men blir inte mer klok av all diverse olika synopsis.
Tanken är att jag enbart ska lägga över några dokument på måldatorn (med eller utan krypteringsnycklar)

Som jag skrev ovan, ska du bara slanga några dokument är scp nog enklare.

  • Medlem
  • Ljungby
  • 2008-10-27 20:25

Om livet är så enkelt ska vara SSH men ge sig tusan på att man inte får det att fungerar.
Hittade den här:
" Steps for using SSH from OS X:
On your Mac from the pulldown under Go:

1. Select Applications
2. Open the Utilities folder
3. Double-click the Terminal utility to start it
4. In the command-line (versus graphical) interface window enter
ssh NetID@u.arizona.edu
where NetID is your username on the U-System. You will be prompted for your password. At this point you are actually logged in to Unix running on the U-System. (All of these commands apply to other systems requiring SSH, such as Super.) "
Har försökt men kommer ingenstans när password kommer up.

  • Medlem
  • Stockholm
  • 2008-10-27 20:54

för att skapa en tunnel från port 2222 till port 22 på en annan maskin:

ssh -fNT -L 2222:localhost:22 user@192.0.2.1

För att förtydliga, om du då ansluter till localhost port 2222 så kommer du hamna på 192.0.2.1 port 22 och få en inloggningspromt från ssh daemonen på den maskinen..

  • Medlem
  • Ljungby
  • 2008-10-27 21:19

Jag förfogar enbart över en ip adress och en port som det här fallet är 666.
Så i fallet som ovanstående skrev så innebär det att för min kännedom så vet jag både den lokala ip och "hosten". Hur gör jag när jag enbart vet ip till måldatorn?
Jag förstår absolut ingenting.

Du bör ju ha något slags konto på burken du ansluter mot. Användarnamnet till det kontot är det du ska använda.

  • Medlem
  • Ljungby
  • 2008-10-27 21:43
Ursprungligen av Standout:

Du bör ju ha något slags konto på burken du ansluter mot. Användarnamnet till det kontot är det du ska använda.

Jag har ett användarnamn men jag förstår fortfarande inte vilket som är rätt ssh -l som jag ska använda?
Tack på förhand

  • Medlem
  • Uppsala
  • 2008-10-27 21:41

Om det rör sig om få filer som ska överföras är det enklast med sftp. Sftp är inbyggt i ssh och kräver inga extra tunnlar. Så här ser kommandot ut som jag använder när jag loggar in på min linuxburk:

På mitt hemmanätverk
sftp lars@192.168.0.1
Från vilken dator som helst på internet:
sftp lars@malmqvists.net

Man får då ett skal där man kan använda "put" och "get" för att skicka och hämta filer.

Ps
Försök inte logga in, intrångsförsök loggas och blockeras automatiskt.
Ds

  • Medlem
  • Uppsala
  • 2008-10-27 21:53

Alltså, vad menar du med en ssh-tunnel?
1. En ssh-inloggning där du loggar in på en annan dator med ssh
2. En tunnel där trafiken från och till en viss port A skickas till och från en port B på en annan dator som du är inloggad på med SSH, A kan vara = B.

Det normala med en ssh session är att man skriver så här i terminalen "ssh wexl@domän.com"
Sedan svarar servern i andra ändan och kräver dig på ett lösenord.

Vill man vara lite säkrare använder man certifikat och då skriver man så här:
"ssh -i namnpåcertikfikatfilen wexl@domän.com"

Vid sftp vilket är det du eventuellt ska använda skriver man så här om man vill använda certifikat:

"sftp -o 'IdentityFile2(1) namnpåcertikfikatfilen' wexl@domän.com"

OBS med certifikat menar jag det par av offentlig/privat nyckel som man kan skapa med ssh-keygen. Inte ett PKI certifikat. Beroende på om man väljer RSA eller DSA som algoritm måste man sedan specificera IdentityFile1 för RSA eller IdentityFile2 för DSA. -o och apostroferna är sftp som anropar ssh-subsystemet.

  • Medlem
  • Ljungby
  • 2008-10-27 21:56

Jag ska sätta upp en krypterad förbindelse med SSH och använda den för att hämta och lämna dokument i en måldator där jag har en ip och ett konto.

  • Medlem
  • Uppsala
  • 2008-10-27 22:07

Börja med att logga in med SSH och se till att du kan ansluta och dyl. Sedan har du ett antal alternativ som nämnts här i tråden när de gäller själva filöverföringen.

Om det rör sig om många filer som ska överföras med jämna mellanrum kan vi gå vidare med rsync över ssh, men först sftp!

  • Medlem
  • Ljungby
  • 2008-10-27 22:09

Hur loggar jag in med SSH? De olika försöka jag har gjort slutar med att jag enbart få upp att jag ska skriva in password men sen kommer jag inte längre?

  • Medlem
  • Uppsala
  • 2008-10-27 22:15

Du måste helt enkelt ha ett lösenord.
Alternativet är att du har en privat nyckel, men även i det fallet brukar man kryptera den privata nyckeln med ett lösenord.

Den som du har kontot hos måste väl ha låtit dig välja ett lösenord?
Ett alternativt är att du har ett tomt lösenord, prova det, tryck bara på enter när servern begär ett lösenord.

  • Medlem
  • Ljungby
  • 2008-10-27 22:18

Jag har fått en ip adress, användarnamn och ett lösenord.
När jag skriver ssh användarnamn@123.123.123.123
Så kommer password up
När jag sedan försöker skriva in mitt lösenord så följs det enbart med ett till password.
Alltså gissningsvis fel lösenord?

  • Medlem
  • Uppsala
  • 2008-10-27 22:22

Ja, tyvärr, annars såg det rätt ut.
När du lyckas lösa lösenordsbiten är du en god bit på väg.

  • Medlem
  • Ljungby
  • 2008-10-27 22:32

Fått reda på att det är inget fel på mitt lösenord. Ush!!
Förstår inte varför det inte funkar..

  • Medlem
  • Uppsala
  • 2008-10-27 22:46

Hum, mysteriet tätnar.

Skulle du vilja vara vänlig att skriva, alternativt ta ett screenshot av, vad exakt du gör när du försöker logga in. Ju fler detaljer desto bättre.

  • Medlem
  • Uppsala
  • 2008-10-27 22:55

Hittade just en tänkbar förklaring varför det inte fungera. Det portnummer som du fått, 666, uppfattade jag som den port som du kan tunnla en filöverföringstjänsts på. Dock kan det var så att 666 är det port som du ska ansluta till med ssh.

Då blir kommandot "ssh användarnamn@123.123.123.123 -p 666"

För det kan vara så att, beroend på hur infrastrukturen ser ut hos den du skall anslut till,det finns ett antal ssh-servrar som döljer sig bakom samma IP-adress.

Det man då gör, är att man avänder icke-standardiserade portnummer. 22 är den ordinarie porten för ssh, men bakom en port ryms det bara en server. Så om den du försöker ansluta till har flera ssh servrar misslyckas du p.g att du ansluter till fel server.

Så prova med att lägga till -p 666 på kommandoraden

  • Medlem
  • Ljungby
  • 2008-10-27 23:05
Ursprungligen av sfalc:

Hittade just en tänkbar förklaring varför det inte fungera. Det portnummer som du fått, 666, uppfattade jag som den port som du kan tunnla en filöverföringstjänsts på. Dock kan det var så att 666 är det port som du ska ansluta till med ssh.

Då blir kommandot "ssh användarnamn@123.123.123.123 -p 666"

För det kan vara så att, beroend på hur infrastrukturen ser ut hos den du skall anslut till,det finns ett antal ssh-servrar som döljer sig bakom samma IP-adress.

Det man då gör, är att man avänder icke-standardiserade portnummer. 22 är den ordinarie porten för ssh, men bakom en port ryms det bara en server. Så om den du försöker ansluta till har flera ssh servrar misslyckas du p.g att du ansluter till fel server.

Så prova med att lägga till -p 666 på kommandoraden

Där hade vi felet. Tack så mycket. Har nu alltså fått åtkomst till måldatorn.
Nu kan jag äntligen gå vidare. När vi ändå håller på.
Hur ser jag innehåller i måldatorn?

  • Medlem
  • Göteborg
  • 2008-10-28 00:41

wexl: ls

Nu när du har åtkomst skulle jag rekommendera sftp istället.

sftp -oPort=<port> username@<host>

Du blir tillfrågad om lösenord, mata in och voila

Snabb lathund;

ls = lista innehållet där du är ansluten
lls = lista lokala innehållet
cd = byt katalog
lcd = byt lokal katalog
get/put <fil> = som det låter
mget/mput *.txt = hämta/lägga alla filer som matchar *.txt
help - ger dig en lista på fler kommandon

Har du tänkt att använda det i större filstrukturer eller känner dig obekväm med terminalen kan det ju vara läge att titta på cyberduck/transmit eller annat sftp-klient som är grafisk.

  • Medlem
  • Ljungby
  • 2008-10-28 13:22

Jag har ett grafisk gränssnitt dock så försöker jag skapa ssh keys. Dock får jag problem med att flytta över en av nycklarna till måldatorn. (använder teminalen)
ssh-keygen -t dsa
Men i och med att jag ska flytta den ena genom att skriva:
scp ~/.ssh/id_dsa.pub XXXX:.ssh/authorized_keys2
Förstår fortfaranade inte hur jag flytta den ena nycklen till måldatorn.
Jag förstår inte hur jag skriver in port nummret så att jag ändrar standard 22 till min port 666.

  • Medlem
  • Göteborg
  • 2008-10-28 14:46

prova

scp -P 666 ~/.ssh/id_dsa.pub användarnamn@ip.till.mottagaren:/home/användarnamn/.ssh/authorized_keys2

och se om det hjälper

mvh
/genell

  • Medlem
  • Ljungby
  • 2008-10-28 16:26

Fick enbart up ssh: connect to host XX.XXX.XXX.XX port 666: Connection refused
Existerar det ett annat program där man kan skapa nycklar i?
I och med att jag har ett grafisk program att tillgå så har jag alltså möjlighet att flytta över nycklarna manuellt men jag vet fortfarande inte hur jag kan flytta dem i terminalen eller hur jag skapar nycklar som jag kan flytta över manuellt i det grafiska läget?
Just nu så är problemet att jag inte vet hur jag ska flytta nycklarna så att jag har en nyckel på varje dator efter att jag har skrivit
ssh-keygen -t dsa

Senast redigerat 2008-10-28 17:12
  • Medlem
  • Göteborg
  • 2008-10-28 16:12

Ett annat sätt att flytta nyckeln är ju clipboard, dvs öppna med valfri textediterare på hemma sidan, kopiera, öppna valfri textediterare på andra sidan klistra in. Men visst går det göra som du säger också.

Efter att du kört ssh-keygen -t dsa skapas din nyckel i .ssh-katalogen som normalt är gömd i Finder. Du kan se den genom att öppna en ny terminal och skriva "cat ~/.ssh/id_dsa.pub". Kopiera det som dyker upp i terminalen till filen ~/.ssh/authorized_keys på värdmaskinen.

  • Medlem
  • Ljungby
  • 2008-10-28 18:39

När jag skriver ssh-keygen -t dsa, ska jag då skriva det i fönstret där jag är ansluten till måldatorn eller i en seperat fönster där jag inte är inloggad? beroende på vilket så skapas det ju antingen 2 keyger i måldatorn eller på min egna?

Tanken är att kunna slippa behöva skriva in lösenord varje gång för att ansluta. Just nu så kan jag skapa keygen men jag får det inte att fungerar så att jag slipper använda lösenord.

Senast redigerat 2008-10-28 22:08
  • Medlem
  • Uppsala
  • 2008-10-28 21:56

Principen är att man har sin offentliga nyckel i en authorized_keys fil i ssh-mappen på de sitt användarkonto i den eller de maskiner som man vill komma åt med ssh.
Det spelar ingen roll var du skapar nyckelparet.
Det som är viktigt är att den publika nyckeln placeras i authorized_keys filen på de datorer du vill komma åt och den privata nyckeln har du på den eller de datorer som du vill logga in från.

Bevaka tråden