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 här 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 lite tweaking kommer SSH också att köras.
Säker kopia är ett riktigt användbart kommando, och det är väldigt lätt att använda. Basformatet för kommandot ä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:
user @ server: path / to / file
Servern kan vara en webbadress eller en IP-adress. Detta följs av ett 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 innehåller flaggan [-P] (observera att det är en huvudstad P ). Detta tillåter 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 kallas "skrivbord". Destinationsfilen finns i "~ / Desktop / url.txt" som är samma 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 det motsatta? Du kan också kopiera filer från en fjärrserver.
Här har jag kopierat en fil från fjärrdatorns "~ / Desktop /" -mapp till min dators "Desktop" -mapp.
För att kopiera hela kataloger, Du måste använda flaggan [-r] (observera att det är en liten bokstav r).
Du kan också kombinera flaggor. I stället för
scp -P -r ...
kan du bara göra
scp -Pr ...
Den tuffaste delen här är att flikavslutningen inte alltid fungerar, så det är bra att ha en annan terminal med en SSH-session som körs så att du vet var du ska sätta saker.
Säker kopia är bra. Du kan lägga det 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 ange 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 till fjärrservern och en privat som finns på datorn och måste vara säker - och de kommer att användas istället för ett lösenord. Något bekvämt, rätt?
Skriv på följande kommando på din dator:
ssh-keygen -t rsa
Det här genererar de två nycklarna och lägger dem in:
~ / .ssh /
med namnen "id_rsa" för din privata nyckel och "id_rsa.pub" för din allmänna 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.
Nästa blir du 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 den offentliga nyckelfilen 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. Det innebär att om du vill lägga till en annan offentlig nyckel för ditt konto på den här servern, kopierar du innehållet i den andra id_rsa.pub-filen till en ny rad i den befintliga authorized_keys2-filen.
Isn ' t det här säkrare ä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 bitslä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 för alla datorer som har matchande pubic-nyckel, 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 den korrekta privata nyckelfilen samt rätt lösenfras.
När du har skrivit in ditt lösenfras en gång kommer du inte att bli ombedd igen 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 ditt terminalfönster, måste du ange det igen. På det här sättet offrar 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å det sättet, om en av dina privata nycklar fångas 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 symlink i din ~ / .ssh / directory. Beroende på vad jag gör använder jag den här superparanoida supersäkra metoden för att göra mig nöjd. Har du använt SCP i några skript? Användar du nyckelfiler i stället för lösenord? Dela din egen expertis med andra läsare i kommentarerna!
Hur man skapar flera underkataloger med ett Linux-kommando
Om du vill skapa en katalog som innehåller flera underkataloger eller ett katalogtree, använder du kommandoraden i Linux, generellt måste du använda mkdir kommandot flera gånger. Det finns dock ett snabbare sätt att göra detta. Låt oss säga att vi har skapat en katalog som heter htg, och vill skapa fyra underkataloger inom den.
Så här ställer du in eller markerar en partition som aktiv i Windows
Har du flera partitioner på din dator med olika operativsystem installerade? Om så är fallet kan du ändra den aktiva partitionen i Windows så att den när datorn startas laddar det lämpliga operativsystemet. Detta kallas ett system med dubbla uppstart eller flera system.Att ändra den aktiva partitionen är en ganska avancerad uppgift, så om du planerar att göra det, behövde du förmodligen inte förklaringen ovan! Ändra bara d