Hemsida » hur » Så här fjärrkopierar du filer över SSH utan att skriva in ditt lösenord

    Så här fjärrkopierar du filer över SSH utan att skriva in ditt lösenord

    SSH är en livräddare när du behöver fjärrstyra en dator, men visste du att du också kan ladda upp och ladda ner filer också? Med SSH-nycklar kan du hoppa över att behöva ange lösenord och använda det för skript!

    Denna process fungerar på Linux och Mac OS, förutsatt att de är korrekt konfigurerade för SSH-åtkomst. Om du använder Windows kan du använda Cygwin för att få Linuxliknande funktionalitet, och med en liten tweaking kommer SSH också att springa.

    Kopiera filer över SSH

    Säker kopia är ett riktigt användbart kommando, och det är verkligen lätt att använda. Kommandot basformat är som följer:

    scp [alternativ] original_file destination_file

    Den största kickern är hur man formaterar fjärrdelen. När du adresserar en fjärrfil måste du göra det på följande sätt:

    användare @ server: sökväg / till / fil

    Servern kan vara en webbadress eller en IP-adress. Detta följs av en kolon, sedan sökvägen till den aktuella filen eller mappen. Låt oss titta på ett exempel.

    scp -P 40050 Skrivbord / url.txt [email protected]: ~ / Desktop / url.txt

    Detta kommando har fliken [-P] (observera att det är en huvudstad P). Detta gör det möjligt för mig att ange ett portnummer istället för standard 22. Detta är nödvändigt för mig på grund av hur jag har konfigurerat mitt system.

    Därefter är min ursprungliga fil "url.txt" som ligger inuti en katalog som heter "Desktop". Destinationsfilen finns i "~ / Desktop / url.txt" som är densamma som "/user/yatri/Desktop/url.txt". Detta kommando drivs av användaren "yatri" på fjärrdatorn "192.168.1.50".

    Vad om du behöver göra motsatsen? Du kan också kopiera filer från en fjärrserver på samma sätt.

    Här har jag kopierat en fil från fjärrdatorns "~ / Desktop /" -mapp till min dators "Desktop" -mapp.

    För att kopiera hela kataloger måste du använda flaggan [-r] (observera att det är en liten r).

    Du kan också kombinera flaggor. Istället för

    scp -P-r ...

    Du kan bara göra det

    scp -Pr ...

    Den hårdaste delen här är att flikavslutningen inte alltid fungerar, så det är bra att ha en annan terminal med en SSH-session som kör så att du vet var du ska sätta saker.

    SSH och SCP utan lösenord

    Säker kopia är bra. Du kan lägga den i skript och få det att göra säkerhetskopior till fjärrdatorer. Problemet är att du inte alltid kan vara runt för att skriva in lösenordet. Och, låt oss vara ärliga, det är en verklig stor smärta att sätta in ditt lösenord till en fjärrdator som du självklart har tillgång till hela tiden.

    Tja, vi kan komma runt med lösenord genom att använda nyckelfiler. Vi kan få datorn att generera två nyckelfiler - en allmänhet som hör hemma på fjärrservern och en privat som finns på din dator och måste vara säker - och de kommer att användas istället för ett lösenord. Ganska bekvämt, rätt?

    Ange följande kommando på din dator:

    ssh-keygen -t rsa

    Detta kommer att generera de två nycklarna och sätta in dem:

    ~ / .Ssh /

    med namnen "id_rsa" för din privata nyckel och "id_rsa.pub" för din offentliga nyckel.

    Efter att du kommit in i kommandot blir du ombedd var du ska spara nyckeln. Du kan trycka på Enter för att använda ovanstående standardinställningar.

    Därefter kommer du att bli ombedd att ange ett lösenordsfras. Tryck på Enter för att lämna detta tomma, gör sedan det igen när det ber om bekräftelse. Nästa steg är att kopiera public key-filen till din fjärrdator. Du kan använda SCP för att göra detta:

    Destinationen för din offentliga nyckel finns på fjärrservern i följande fil:

    ~ / .Ssh / authorized_keys2

    Senare offentliga nycklar kan läggas till i den här filen, ungefär som ~ / .ssh / known_hosts-filen. Detta innebär att om du vill lägga till en annan offentlig nyckel för ditt konto på den här servern skulle du kopiera innehållet i den andra id_rsa.pub-filen till en ny rad på den befintliga authorized_keys2-filen.

    Säkerhetshänsyn

    Är det inte mindre säkert än ett lösenord?

    I praktisk mening, inte riktigt. Den privata nyckeln som genereras lagras på datorn du använder, och den överförs aldrig, inte ens för att verifieras. Den här privata nyckeln matchar ENDAST med den ena offentliga nyckeln, och anslutningen måste startas från den dator som har den privata nyckeln. RSA är ganska säker och använder som standard en 2048 bitlängd.

    Det är faktiskt ganska likt i teorin att använda ditt lösenord. Om någon har känt ditt lösenord går din säkerhet ut ur fönstret. Om någon har din privata nyckelfil, går säkerheten bort på vilken dator som helst som har den matchande pubic-nyckeln, men de behöver tillgång till din dator för att få den.

    Kan detta vara säkrare?

    Du kan kombinera ett lösenord med nyckelfiler. Följ stegen ovan, men ange ett starkt lösenordsfras. Nu, när du ansluter över SSH eller använder SCP, behöver du rätt privat nyckelfil såväl som rätt lösenfras.

    När du har skrivit in ditt lösenfras en gång kommer du inte att bli ombedd för det tills du stänger din session. Det betyder att första gången du SSH / SCP måste du ange ditt lösenord, men alla efterföljande åtgärder kräver inte det. När du loggar ut från din dator (inte fjärrkontrollen) eller stänger terminalfönstret, måste du ange det igen. På det här sättet förorsakar du inte verkligen säkerhet, men du är inte trakasserad för lösenord hela tiden.

    Kan jag återanvända det offentliga / privata nyckelparet?

    Det här är en riktigt dålig idé. Om någon hittar ditt lösenord, och du använder samma lösenord för alla dina konton, har de nu tillgång till alla dessa konton. På samma sätt är din privata nyckelfil också superhemlig och viktig. (För mer information, ta en titt på hur du återställer efter att ditt lösenord är kompromissat)

    Det är bäst att skapa nya nyckelpar för varje dator och konto du vill länka. På så sätt, om en av dina privata nycklar blir på något sätt, kommer du bara att kompromissa ett konto på en fjärrdator.

    Det är också mycket viktigt att notera att alla dina privata nycklar lagras på samma plats: i ~ / .ssh / på din dator kan du använda TrueCrypt för att skapa en säker, krypterad behållare och sedan skapa symlinks i din ~ / .ssh / katalog. Beroende på vad jag gör använder jag den här superparanoida supersäkra metoden för att ställa mig lugnt.


    Har du använt SCP i några skript? Använder du nyckelfiler istället för lösenord? Dela din egen expertis med andra läsare i kommentarerna!